آموزش WPF

مباحث پایه WPF

مثال های کاربردی WPF

استایل دهی در WPF – آموزش WPF

  • چهارشنبه ۲۷ مرداد ۱۴۰۰
  • بازدید ۱,۱۷۵ نفر

تصویر wpf-styles_10641 استایل دهی در WPF - آموزش WPF

استایل دهی در WPF

در WPF و فریم ورک .NET استراتژی های مختلفی برای شخصی سازی ظاهر یک برنامه وجود دارد. استفاده از استایل دهی در WPF به ما این قابلیت را می دهد که مقادیر تعدادی خاصیت را در قالب یک Style تعریف کرده و در جاهای مختلف از آن استفاده کنیم.

استایل دهی در WPF به منظور ایجاد ظاهری یک شکل و مشابه برای مجموعه ای از کنترل ها استفاده می شود. برای مثال فرض کنید سه Button داریم و میخوایم مقدار خاصیت های Width و Height آن ها مشابه باشد. به شکل زیر توجه کنید:

تصویر wpf-styles_10641_1 استایل دهی در WPF - آموزش WPF

از آن جایی که در مثال فوق فقط سه عدد Button وجود دارد، تنظیم مقدار خاصیت ها به شکل بالا هیچ اشکالی ندارد اما در برنامه های واقعی تعداد کنترل ها خیلی بیشتر از سه عدد Button است و اگر مقدار خاصیت های هر یک از کنترل ها به صورت جداگانه تنظیم شود، در هنگام توسعه برنامه به مشکل برمیخوریم. قطعا روش بهتری نیز وجود دارد. به شکل زیر توجه کنید:

تصویر wpf-styles_10641_2 استایل دهی در WPF - آموزش WPF

در شکل فوق ما خاصیت های مورد نظر را در قالب یک Style تنظیم کرده و در هر سه Button از آن استفاده نموده ایم.

مثال

برای درک بهتر یک پروژه WPF با نام WPFSTyle ایجاد کرده و آن مانند نمونه زیر تغییر دهید. محتوای فایل MainWindow.xaml:

در کد فوق ما کد مشابه به شکل اول را نوشته ایم که سه Button با مقادیر مشابه برای خاصیت های Height، Width، Foreground، FontSize و Margin دارد. زمانی که مثال فوق را کامپایل و اجرا کنید، خروجی زیر را تولید خواهد کرد:

تصویر wpf-styles_10641_4 استایل دهی در WPF - آموزش WPF

حال کد فوق را مانند نمونه زیر تغییر دهید:

همانطور که مشاهده میکنید، ما مقادیر مشابه را به صورت یک Style تنظیم کرده ایم (شکل دوم). خروجی مثال تغییر یافته:

تصویر wpf-styles_10641_4 استایل دهی در WPF - آموزش WPF

خروجی در هر دو حالت یکسان است اما استفاده از Style مزایای خیلی زیادی دارد. تعریف Style می تواند در سطوح زیر انجام شود:

  • Control Level: فقط در همان کنترل در دسترس خواهد بود.
  • Layout Level: در دسترس کنترل لایه بندی (مثل StackPanel) و کنترل های فرزند خواهد بود.
  • Window Level: در دسترس کل کنترل های موجود در Window خواهد بود.
  • Application Level: در کل برنامه در دسترس خواهد بود.
ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است