WPF属性---重复样式和触发器

简介: WPF属性---重复样式和触发器

重复样式


<StackPanel>


<Button FontSize="20" Foreground="Red" Content="hello" Width="100" Height="40"/>


<Button FontSize="20" Foreground="Red" Content="hello" Width="100" Height="40"/>


<Button FontSize="20" Foreground="Red" Content="hello" Width="100" Height="40"/>


</StackPanel>


68da6aa57df1f9eb2efdaa5ac54282bd_b1c5bf9542adda0ba84e62e54034db74.png


通过以上的设置我们发现有很多重复的代码,在编写代码的时候,我们要避免代码的重复,代码的冗余,我们需要借助window资源,<window.Resources>


都要设置一个键值,通过键值找到样式X:key,例如:X:key=“defaultStyle”,通过defaultStyle找到样式


设置类型,TargetType。我们要为button设置样式,那么TargetType的类型就是button:TargetType=“button”。在接下来的设置中,我们就可以依据button的属性来设置


ba25ac83b4a3ec31b4be9411d7d69fbb_3dda0de02c40cc7529e683d736ce13f1.png


<Window.Resources>


<Style x:Key="defaultStyle" TargetType="Button"><!--TargetType要为谁设置样式-->


<Setter Property="FontSize" Value=" 30"/>


<Setter Property="Foreground" Value="blue"/>


<Setter Property="Width" Value="10"/>


</Style>


</Window.Resources>


<Grid>


<StackPanel>


按钮调用


<Button Style="{StaticResource defaultStyle}" Foreground="Red" Content="hello" Width="100" Height="40"/>


<Button FontSize="20" Foreground="Red" Content="hello" Width="100" Height="40"/>


<Button FontSize="20" Foreground="Red" Content="hello" Width="100" Height="40"/>


</StackPanel>


</Grid>


触发器


触发器就像开关一样,比如说一个按钮放上去的时候是什么样的拿下来又是什么样的


<Style.Triggers>


Trigger 为其中的一个触发器,还有其他样式


<Trigger Property="IsMouseOver" Value="True">


设置的各个属性


<Setter Property="Foreground" Value="Red"/>


<Setter Property="FontSize" Value="100"/>


</Trigger>


</Style.Triggers>


表现效果,当鼠标移动到按钮上会发生字体变为共色,字体为100


多条件触发器


<Style.Triggers>


<MultiTrigger><!--多条件触发器 当满足多个条件之后才触发的-->


<MultiTrigger.Conditions>


<!--两个条件同时满足--> 相当于这里是if语句


<Condition Property="IsMouseOver" Value="True"/>


<Condition Property=" IsFocused" Value="True"/>


</MultiTrigger.Conditions>


<!--满足以上两个条件执行什么-->就执行什么语句


<MultiTrigger.Setters>


<Setter Property="Foreground" Value="Red"/>


</MultiTrigger.Setters>


</MultiTrigger>


</Style.Triggers>


事件触发器


<EventTrigger RoutedEvent="Mouse.MouseEnter">


<EventTrigger.Actions>


<BeginStoryboard><!--动画效果-->


<Storyboard>


<DoubleAnimation Duration="0:0:0.2"


Storyboard.TargetProperty="FontSize" To="30">


</DoubleAnimation>


</Storyboard>


</BeginStoryboard>


</EventTrigger.Actions>


</EventTrigger>


相关文章
WPF疑难问题之Treeview中HierarchicalDataTemplate多级样式
WPF疑难问题之Treeview中HierarchicalDataTemplate多级样式
403 0
|
4月前
|
C# 开发者 Windows
全面指南:WPF无障碍设计从入门到精通——让每一个用户都能无障碍地享受你的应用,从自动化属性到焦点导航的最佳实践
【8月更文挑战第31天】为了确保Windows Presentation Foundation (WPF) 应用程序对所有用户都具备无障碍性,开发者需关注无障碍设计原则。这不仅是法律要求,更是社会责任,旨在让技术更人性化,惠及包括视障、听障及行动受限等用户群体。
96 0
|
4月前
|
开发者 C# 存储
WPF开发者必读:资源字典应用秘籍,轻松实现样式与模板共享,让你的WPF应用更上一层楼!
【8月更文挑战第31天】在WPF开发中,资源字典是一种强大的工具,用于共享样式、模板、图像等资源,提高了应用的可维护性和可扩展性。本文介绍了资源字典的基础知识、创建方法及最佳实践,并通过示例展示了如何在项目中有效利用资源字典,实现资源的重用和动态绑定。
120 0
|
4月前
|
开发者 C# 存储
WPF开发者必读:样式与模板的艺术,轻松定制UI外观,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,样式与模板是实现美观界面与一致性的关键工具。样式定义了控件如字体、颜色等属性,而模板则允许自定义控件布局与子控件,两者均可存储于`.xaml`文件中。本文介绍了样式与模板的基础知识,通过示例展示了如何创建并应用它们来改变按钮的外观,从而提升用户体验。
109 0
|
4月前
|
存储 前端开发 C#
WPF/C#:更改界面的样式
WPF/C#:更改界面的样式
52 0
WPF-布局样式练习-Day02-聊天气泡
WPF-布局样式练习-Day02-聊天气泡
265 1
|
7月前
|
C#
浅谈WPF之样式与资源
WPF通过样式,不仅可以方便的设置控件元素的展示方式,给用户呈现多样化的体验,还简化配置,避免重复设置元素的属性,以达到节约成本,提高工作效率的目的,样式也是资源的一种表现形式。本文以一个简单的小例子,简述如何设置WPF的样式以及资源的应用,仅供学习分享使用,如有不足之处,还请指正。
142 0
|
C#
2000条你应知的WPF小姿势 基础篇<57-62 依赖属性进阶>
2000条你应知的WPF小姿势 基础篇<57-62 依赖属性进阶>
54 0
|
存储 开发框架 .NET
2000条你应知的WPF小姿势 基础篇<51-56 依赖属性>
2000条你应知的WPF小姿势 基础篇<51-56 依赖属性>
48 0
WPF-Binding问题-模板样式使用Binding TemplatedParent与TemplateBinding区别
WPF-Binding问题-模板样式使用Binding TemplatedParent与TemplateBinding区别
259 0

热门文章

最新文章