WPF 学习之控件模板 ControlTemplate Triggers
2021-06-20 19:05
标签:isp 描述 vertica tac sse alignment 目标 erb 注意 Trigger 触发器设置控件模板的行为 需要设置 Property 行为目标 Value触发该行为的值 WPF 学习之控件模板 ControlTemplate Triggers 标签:isp 描述 vertica tac sse alignment 目标 erb 注意 原文地址:https://www.cnblogs.com/houzf/p/10258559.html控件模板ControlTemplate,有两部分:VistualTree视觉树,即是能看到的外观;Trigger触发器,里面包括外部条件达到某一条件下会引起的响应。
Window.Resources>
ControlTemplate x:Key="ButtonTempalted" TargetType="{x:Type Button}">
Border Name="Border" BorderThickness="2" CornerRadius="3" BorderBrush="AliceBlue" Background="Aqua" TextBlock.Foreground="White">
ContentPresenter Margin="{TemplateBinding Padding}" HorizontalAlignment="Center" VerticalAlignment="Center" >
ContentPresenter>
Border>
ControlTemplate.Triggers>
Trigger Property="IsMouseOver" Value="True" >
Setter TargetName="Border" Property="Background" Value="Red">Setter>
Trigger>
Trigger Property="IsPressed" Value="True">
Setter TargetName="Border" Property="Background" Value="White">Setter>
Trigger>
ControlTemplate.Triggers>
ControlTemplate>
Window.Resources>
StackPanel Margin="5">
Button Margin="5" Padding="3">Normal ButtonButton>
Button Margin="5" Padding="3" Name="myBorder" Template="{StaticResource ResourceKey=ButtonTempalted}">Templated ButtonButton>
StackPanel>
以上xml中描述 StackPanel 中添加了2个Button控件,一个不使用控件模板Normal Button 一个使用ButtonTempalted 控件模板资源控件模板中包含视覚树 和触发器,在上述例子中我设置了 该控件模板目标类型为Button 在外观设置中设置buuton的Border的外观属性
需要注意的是如果仅如下设置border外观,buuton控件不能正常显示,此时还需要设置ContentPresenter内容表示器 设置内容元素的属性 Border Name="Border" BorderThickness="2" CornerRadius="3" BorderBrush="AliceBlue" Background="Aqua" TextBlock.Foreground="White">
Border>
Trigger Property="IsMouseOver" Value="True" >
Setter TargetName="Border" Property="Background" Value="Red">Setter>
Trigger>
上一篇:通过Hutool 调用远程API接口(POST/GET)
下一篇:c#课后总结
文章标题:WPF 学习之控件模板 ControlTemplate Triggers
文章链接:http://soscw.com/index.php/essay/96554.html