# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > WPF >  شبیه سازی Aero Theme برای برنامه های دات نت

## Amir Oveisi

با سلام
دوستان و اساتید گرامی 
چند وقت پیش خواستم از Aero Theme در برنامه ام استفاده کنم که متوجه شدم در سیستم هایی که کارت گرافیکشون WDM Driver رو نداره یا ساپورت نمیکنه نمیشه این Theme رو استفاده کرد در برنامه (از طریق API های جدید در Vista و 7).
همینطور ویندوز xp هم چنین امکانی نداره.
به همین دلیل تصمیم گرفتم که تا حدی این theme رو شبیه سازی کنم تا بدون نیاز به API ها و در همه ویندوزها قابل استفاده باشه.

یه مقدار روش کار کردم و به این جا رسیدم که عکش رو می بینید. 
خواستم ببینم تا چه حد قابل قبول هست تا این مرحله و هم چنین نظرات و ایده های دوستان و اساتید گرامی رو دریافت کتم (نظر شامل انتقاد و ایراد هم میشه البته).

امیدوارم با نظرات شما عزیزان بتونیم به نتیجه مطلوب برای اکثریت برسیم و در آخر کل پروژه رو در اینجا با source قرار خواهم داد.

*نکته :*
1-  لطفا فقط بر روی بحث ظاهر فرم بحث کنید و از وارد شدن به جزئیات تکنیکی و پیاده سازی خودداری نمایید تا سریع تر این بحث فعلی به نتیجه برسه و در مرحله بعدی به مطالب تکنیکی پرداخته خواهد شد.
2- هدف پروژه Windows Form و WPF Window هست.

مدیران محترم نمیدونستم این بحث رو در تالار WPF مطرح کنم یا C#‎‎ ، اما چون هم Win App و هم WPF App مد نظر هستند و البته به دلیل پر تردد بودن این تالار (C#‎)، در این تالار مطرح کردم تا جامعه آماری بزرگتری داشته باشیم و شاهد نظر ها و ایده های متنوع تر و بیشتری باشیم تا بتونیم سریع تر به نتیجه برسیم - در صورت نیاز به تغییر عنوان یا محتوای تاپیک خوشحال میشم به بنده کمک کنید.

تصویر شماره 1:

در این تصویر موس روی دکمه خروج قرار داره.

تصویر شماره 2:


ممنون از همه

----------


## Salar Ashgi

سلام ، اگه مثل Vista و Se7en ، با رفتن رو کلید های خروج ، مینیمایز و ماکسیمایز

(Control Box ) حالت Fade داشته باشه و همچنین حالت Shadow ، میتونه جالب باشه !!!

در ضمن یه سوال : من خودم از چندتا Skin ویستا استفاده کردم (با Skin Engine ) ولی

در صورت استفاده از این skin ها بعضی اشیا ، برخی از خصوصیت هاشون از بین میره !

مثلا لیبل رو نمیشه رنگشو عوض کرد یا دیتاگرید همیشه سایز ثابتی پیدا میکنه و ...

آیا این Form پیشنهادی شما این مشکلات را ندارد ؟

موفق و پیروز باشید !!!

----------


## Amir Oveisi

ممنون از پيشنهاد شما.
نه هيچ كدوم از اين مشكلات رو نداره

----------


## kioomars

خیلی خوبه  لطفا بیشتر توضیح بده

----------


## S.Azish

اگر بخواید فقط کنترلها تغییر کنن فقط کافیه به WPF بگید از کدوم theme استفاده کنه. حتی در xp


<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/PresentationFramework.Aero;V3.0.0.0;31bf3856ad364e  35;component\themes/aero.normalcolor.xaml" />
        </ResourceDictionary.MergedDictionaries>
   </ResourceDictionary>
</Application.Resources>


که البته باید PresentationFramework.Aero رو به reference ها اضافه کرد ولی اگر بخواید خود فرم رو هم عوض کنید, من این لینک رو پیشنهاد میکنم:

http://www.codeplex.com/fluidkit

----------


## Amir Oveisi

دوست گرامی من هدفم Aero Glass Theme هست و اون Glass بودن رو میخوام شبیه سازی کنم و کنترل ها مد نظر نیستند.

ممنون و موفق باشید

----------


## salehbagheri

ببخشید الان ما فقط باید در مورد عکسها نظر بدیم؟ چیزی واسه دریافت وجود نداره؟

نکته ها برای شبیه سازی دقیق تر:

الان گوشه های فرم خیلی گرد شده تقریبا میشه گفت فانتزی شده!اگه دقت کرده باشید دکمه Exit باید از دو دکمه دیگر بزرگتر باشه! در حالی که اینطور نیست!Title فرمها هم بدجایی قرار گرفته و همچنین سایز فونتش بزرگه!Title ها در Aero روشن هستند یعنی هاله ای از نور اطرافشون هست!تصاویر پشت فرمهایی که از Aero Theme استفاده میکنند به نحوی افکت Blur دارند!همچنین حالت پنجره ها به اندازه 1 پیکسل برآمده هست! (حالت Bevel در فتوشاپ)همچنین یه بکگراندی مثل لینک زیر پشتش هست البته بدون رنگ! (Transparent)https://barnamenevis.org/pictur...&pictureid=880

----------


## S.Azish

Glass بودن Window هم در FluidKit هست:


	[TemplatePart(Name = "PART_CloseButton", Type = typeof (Button))]
	[TemplatePart(Name = "PART_MinimizeButton", Type = typeof (Button))]
	[TemplatePart(Name = "PART_MaximizeButton", Type = typeof (Button))]
	[TemplatePart(Name = "PART_NResizer", Type = typeof (Path))]
	[TemplatePart(Name = "PART_SResizer", Type = typeof (Path))]
	[TemplatePart(Name = "PART_EResizer", Type = typeof (Path))]
	[TemplatePart(Name = "PART_WResizer", Type = typeof (Path))]
	[TemplatePart(Name = "PART_NWResizer", Type = typeof (Rectangle))]
	[TemplatePart(Name = "PART_NEResizer", Type = typeof (Rectangle))]
	[TemplatePart(Name = "PART_SWResizer", Type = typeof (Rectangle))]
	[TemplatePart(Name = "PART_SEResizer", Type = typeof (Rectangle))]
	[TemplatePart(Name = "PART_TitleBar", Type = typeof (Panel))]
	public class GlassWindow : Window

----------


## Amir Oveisi

ميشه بيشتر در مورد Fludkit توضيح بدين؟

----------


## 13601360

> ميشه بيشتر در مورد Fludkit توضيح بدين؟


تا اونجایی که من می دونم Fludkit یه پروژه اوپن سورس توی کدپلکس هست 
اگر ربطی نداره شرمنده  :خجالت: 

 

http://www.codeplex.com/fluidkit

----------


## S.Azish

FluidKit نام پروژه کد بازی هست که شامل یکسری کنترلهای معمول WPF هست. میتونید کل سورس رو دانلود کنید و کنترلها رو ببینید.

----------


## jalalx

آقای  				S.Azishعزیز!
میشه راجع به کد یه کمی توضیح بدید؟!

----------


## venus.i

سلام.
من از این ظاهر glass خیلی خوشم اومد، فقط ترجیح می دادم که کمی دکمه هاش ظریف تر باشند!
راستش الان داشتم پاسخها رو می خوندم یک سوالی برام پیش اومد، skin engine رو چه جوری استفاده می کنند؟!
ممنون.

----------

