دوستان و علاقمندان به مباحث WPF وقتتون بخیر. با آموزش WPF از وب سایت آموزشی پی وی لرن همراهتون هستیم. بررسی سبک ها یا Style ها در WPF را خواهیم داشت. با ما همراه باشید.
چارچوب NET. چندین استراتژی برای شخصی سازی و سفارشی سازی ظاهر برنامه ارائه می دهد. سبک ها انعطاف پذیری را برای تنظیم برخی از ویژگی های یک شی و استفاده مجدد از این تنظیمات خاص در چندین اشیاء به جای داشتن یک دید ثابت فراهم می کند.
از سبک ها برای ایجاد دید یا ظاهری یونیفرم به مجموعه کنترل ها استفاده می شود. از سبک های ضمنی برای اعمال ظاهر در کلیه کنترل های یک نوع خاص و ساده کردن برنامه استفاده می شود. سه دکمه را که هر سه ی آن ها یکسان هستند، تصور کنید. عرض و ارتفاع، اندازه فونت، رنگ پیش زمینه و غیره آن ها یکسان است. ما می توانیم تمام این خواص را در عناصر دکمه ی خود تنظیم کنیم. به طوری که برای همه ی دکمه ها کاملا مناسب باشد. به نمودار زیر نگاهی بیندازید.
اما در برنامه های کاربردی در زندگی واقعی ، شما معمولاً تعداد بیش تری از این موارد را خواهید داشت که دقیقاً یکسان هستند. و نه تنها دکمه ها ، به طور معمول می توانید بلوک های متنی ، جعبه های متنی و کادر ترکیبی و غیره در برنامه شما یکسان باشد. مطمئناً باید راه بهتری برای دستیابی به این هدف وجود داشته باشد که به عنوان styling معروف است. شما می توانید از یک سبک به عنوان یک روش مناسب برای اعمال مجموعه ای از مقادیر خاصیت در بیش از یک عنصر استفاده کنید. به نمودار زیر نگاهی بیندازید.
بیایید یک مثال ساده برای درک این مفهوم داشته باشیم. با ایجاد یک پروژه جدید WPF شروع کنید.
سه دکمه را از جعبه ابزار به پنجره طراحی درگ کنید.
کد XAML زیر سه دکمه ایجاد می کند و آن ها را با برخی از خصوصیات مقدار دهی می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <Window x:Class = "WPFStyle.MainWindow" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local = "clr-namespace: WPFStyle" mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604"> <StackPanel> <Button Content = "Button1" Height = "30" Width = "80" Foreground = "Blue" FontSize = "12" Margin = "10"/> <Button Content = "Button2" Height = "30" Width = "80" Foreground = "Blue" FontSize = "12" Margin = "10"/> <Button Content = "Button3" Height = "30" Width = "80" Foreground = "Blue" FontSize = "12" Margin = "10"/> </StackPanel> </Window> |
وقتی به کد بالا نگاه می کنید می بینید که برای تمام دکمه ها ارتفاع ، عرض ، رنگ پیش زمینه ، اندازه فونت و خصوصیات حاشیه یکسان هستند. اکنون وقتی کد بالا کامپایل و اجرا شد ، پنجره زیر نمایش داده می شود.
حال بیایید به همان مثال نگاهی بیندازیم ، اما این بار ، از سبک ها استفاده خواهیم کرد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <Window x:Class = "XAMLStyle.MainWindow" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local = "clr-namespace:XAMLStyle" mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604"> <Window.Resources> <Style x:Key = "myButtonStyle" TargetType = "Button"> <Setter Property = "Height" Value = "30" /> <Setter Property = "Width" Value = "80" /> <Setter Property = "Foreground" Value = "Blue" /> <Setter Property = "FontSize" Value = "12" /> <Setter Property = "Margin" Value = "10" /> </Style> </Window.Resources> <StackPanel> <Button Content = "Button1" Style = "{StaticResource myButtonStyle}" /> <Button Content = "Button2" Style = "{StaticResource myButtonStyle}" /> <Button Content = "Button3" Style="{StaticResource myButtonStyle}" /> </StackPanel> </Window> |
سبک ها در دیکشنری منابع تعریف شده اند و هر سبک دارای یک شناسه کلیدی منحصر به فرد و یک نوع هدف است. در داخل <style> می بینید که برای هر خاصیتی که در سبک گنجانده شود ، چندین برچسب تنظیم کننده تعریف شده است.
در مثال بالا ، اکنون تمام خصوصیات مشترک هر دکمه به سبک تعریف شده است و سپس با تنظیم ویژگی استایل از طریق پسوند نشانه گذاری StaticResource ، به هر دکمه اختصاص داده می شود.
وقتی کد فوق را کامپایل و اجرا می کنید ، پنجره زیر (همان خروجی) نمایش داده می شود.
می توانیم از هر سبکی در هر مکانی که باشد استفاده کنیم. و اگر نیاز به تغییر آن داریم ، به سادگی آن را یک بار در تعریف سبک به جای هر عنصر تغییر می دهیم.
وقتی که سطح یک سبک تعریف می شود و محدوده آن سبک فوراً محدود می شود. بنابراین دامنه ، یعنی جایی که می توانید از سبک استفاده کنید ، بستگی به جایی دارد که شما آن را تعریف کرده باشید. سبک ها را می توان در سطوح زیر تعریف کرد.
ردیف | سطح ها و شرح |
---|---|
۱ | Control Level تعریف یک سبک در سطح کنترل فقط می تواند برای آن کنترل خاص اعمال شود. نمونه ای در زیر آورده شده که، سطح کنترلی است که دکمه و TextBlock از سبک خاص خود برخوردار هستند. |
۲ | Layout Level تعریف یک سبک در هر سطح چیدمان باعث می شود که فقط با آن چیدمان و عناصر کودک آن قابل دسترسی باشد. |
۳ | Window Level تعریف یک سبک در سطح پنجره می تواند آن را توسط همه عناصر موجود در آن پنجره قابل دسترسی کند. |
۴ | Application Levelتعریف یک سبک در سطح برنامه می تواند آن را در کل برنامه قابل دسترس کند. بیایید همین مثال را بیاوریم ، اما در این جا ، ما سبک ها را در فایل app.xaml قرار خواهیم داد تا در کل برنامه قابل دسترسی باشد. |
در این بخش از آموزش wpf به بررسی سبک ها یا Style ها در WPF پرداختیم. در بخش بعدی به بررسی Trigger ها خواهیم پرداخت. با وب سایت آموزشی پی وی لرن همراه باشید.