PDA

View Full Version : شبیه سازی Aero Theme برای برنامه های دات نت



Amir Oveisi
چهارشنبه 25 شهریور 1388, 02:15 صبح
با سلام
دوستان و اساتید گرامی
چند وقت پیش خواستم از 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:

http://h.imagehost.org/0519/Aero.jpg

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

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

http://h.imagehost.org/0002/AeroBlue.jpg


ممنون از همه

Salar Ashgi
چهارشنبه 25 شهریور 1388, 13:26 عصر
سلام ، اگه مثل Vista و Se7en ، با رفتن رو کلید های خروج ، مینیمایز و ماکسیمایز

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

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

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

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

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

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

Amir Oveisi
چهارشنبه 25 شهریور 1388, 14:40 عصر
ممنون از پيشنهاد شما.
نه هيچ كدوم از اين مشكلات رو نداره

kioomars
چهارشنبه 25 شهریور 1388, 17:00 عصر
خیلی خوبه لطفا بیشتر توضیح بده

S.Azish
سه شنبه 31 شهریور 1388, 17:26 عصر
اگر بخواید فقط کنترلها تغییر کنن فقط کافیه به 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
چهارشنبه 01 مهر 1388, 12:50 عصر
دوست گرامی من هدفم Aero Glass Theme هست و اون Glass بودن رو میخوام شبیه سازی کنم و کنترل ها مد نظر نیستند.

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

salehbagheri
چهارشنبه 01 مهر 1388, 18:37 عصر
ببخشید الان ما فقط باید در مورد عکسها نظر بدیم؟ چیزی واسه دریافت وجود نداره؟

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


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

S.Azish
پنج شنبه 02 مهر 1388, 13:38 عصر
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
پنج شنبه 02 مهر 1388, 15:49 عصر
ميشه بيشتر در مورد Fludkit توضيح بدين؟

13601360
پنج شنبه 02 مهر 1388, 16:21 عصر
ميشه بيشتر در مورد Fludkit توضيح بدين؟
تا اونجایی که من می دونم Fludkit یه پروژه اوپن سورس توی کدپلکس هست

اگر ربطی نداره شرمنده :خجالت:

http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=fluidkit&DownloadId=53331&Build=15691 (http://fluidkit.codeplex.com/)





http://www.codeplex.com/fluidkit

S.Azish
جمعه 03 مهر 1388, 13:18 عصر
FluidKit نام پروژه کد بازی هست که شامل یکسری کنترلهای معمول WPF هست. میتونید کل سورس رو دانلود کنید و کنترلها رو ببینید.

jalalx
یک شنبه 26 مهر 1388, 22:20 عصر
آقای S.Azishعزیز!
میشه راجع به کد یه کمی توضیح بدید؟!

venus.i
دوشنبه 27 مهر 1388, 14:41 عصر
سلام.
من از این ظاهر glass خیلی خوشم اومد، فقط ترجیح می دادم که کمی دکمه هاش ظریف تر باشند!
راستش الان داشتم پاسخها رو می خوندم یک سوالی برام پیش اومد، skin engine رو چه جوری استفاده می کنند؟!
ممنون.