View Full Version : سوال: Template
bahar-danaei
پنج شنبه 08 اردیبهشت 1390, 11:13 صبح
با سلام.
من می خوام برای برنامه م 4 تا Thme تعریف کنم که در فصل بهار صورتی، در فصل تابستان سبز و... باشه.
من این کار رو با Edit Template و ایجاد Style ها انجام دادم.
چه جوری می تونم در هنگام اجرای برنامه بگم الان از این Style استفاده کن ؟؟؟؟؟؟؟؟
همچنین چطور می تونم از DocumentViewer استفاده کنم؟
ممنون از کمکتون
Amir Oveisi
پنج شنبه 08 اردیبهشت 1390, 11:42 صبح
سلام
قبل از هر چیز ورودتون رو به جامعه برنامه نویسان تبریک می گم و امیدوارم فعالیت مداوم و مفیدی در این سایت داشته باشید و با رعایت قوانین (http://www.barnamenevis.org/showthread.php?t=51814)به پیشرفت این جامعه کمک کنید :)
style ها در wpf بصورت resource نگهداری میشن ، پس برای دسترسی به اون ها کافیه style مورد نظر رو از Resource ای که در اون قرار داره، استخراج کنید.
فرض کنید تو resource های یک window، یک style برای اون window تعریف کردید و key اون رو style1 دادید. برای اینکه بتونید از طریق کد، Style1 رو به window اتون بدید از این کد استفاده کنید:
this.Style = this.Resources["stye1"] as Style;
برای DocumentViewer این مطلب رو مطالعه کنید: http://msdn.microsoft.com/en-us/library/system.windows.controls.documentviewer.aspx
موفق باشید.
bahar-danaei
دوشنبه 12 اردیبهشت 1390, 09:53 صبح
خوب من 4 تا Resource به نامهای Spring,Summer,... ایجاد کردم و در هرکدام Style مورد نظرم را طراحی کردم.این دستوری هم که ذکر کردید هم در Window_Load نوشتم.اما در هنگام اجرا this.style برابر null می شود.اشکال کارم از کجاست؟؟
Amir Oveisi
دوشنبه 12 اردیبهشت 1390, 10:50 صبح
Style هاتون رو کجا و به چه شکلی تعریف کردید؟
bahar-danaei
پنج شنبه 15 اردیبهشت 1390, 23:10 عصر
Window راEdit template و Edit a copy میکنم.یک Resurce جدید به اسم SpingResorce ایجاد کرده و نام Style را هم Style1 قرار دادم.تغییرات مورد نظرم را اعمال می کنم.
bahar-danaei
یک شنبه 08 خرداد 1390, 15:13 عصر
فیلم آموزشی تغییر استایل windowها به شکل ویندوز 7 را دیدم و از پروژه ضمیمه استفاده کردم.بسیار زیبا بود.
یعنی من الان یک Resorce به نام Windows7 دارم که داخلش 4 تا استایل به نام های Windows7Skin1..4 دارم.
در window_load کد زیر را نوشتم.
this.Style = this.Resources["Windows7Skin1"] as Style
اما errore زیر اتفاق می افته!!!!!!
خواهش می کنم کمکم کنید.
ممنونم از راهنمایی تون.
Amir Oveisi
یک شنبه 08 خرداد 1390, 15:22 عصر
به احتمال زیاد style مورد نظر رو در Resource های this پیدا نمی کنه.
شما style با نام Windows7Skin1 رو تو resource های چه قسمتی تعریف کردید؟ window؟ یا App؟
مهدی فرزاد
یک شنبه 08 خرداد 1390, 20:38 عصر
سلام
من با یک مثال برای شما توضیح میدم
شما برای استایل خودتون حتما یک Key تعریف کردید مثلا مثل کد زیر
<Style x:Key="DarkWin" TargetType="{x:Type Window}">
<Setter Property="WindowStyle" Value="None"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="FontFamily" Value="Tahoma"/>
.
.
.
و اونو در یک ریسور دیکشنری مثلا با نام Window7.xaml ذخیره کردید و در App.xaml کد رو نوشتید
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Window7.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
برای فراخونی اون به وسیله CodeBehind کد زیر رو بکار ببرید
this.Style = this.FindResource("DarkWin") as Style;
نکته بسیار مهم : حتما برای اعمال استایل باید AllowsTransparency="True" WindowStyle="None"
باشه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.