4. 属性触发器
使用触发器,可以动态修改控件的外观和操作方式,因为一些事件或属性值改变了。例如用户在按钮上移动鼠标,按钮就会改变其外观。通常,这必须在C#代码中实现,但使用WPF也可以用XAML实现,而这只会影响UI。
下面首先介绍属性触发器
<Style x:Key="TextBoxStyle" TargetType="{x:Type TextBox}"> <Setter Property="Background" Value="LightBlue"/> <Setter Property="FontSize" Value="17"/> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background"> <Setter.Value> <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> <GradientStop Offset="0" Color="LightBlue"/> <GradientStop Offset="0.4" Color="Cyan"/> <GradientStop Offset="0.8" Color="LightCyan"/> </LinearGradientBrush> </Setter.Value> </Setter> <Setter Property="FontSize" Value="22"/> </Trigger> <Trigger Property="IsKeyboardFocused" Value="True"> <Setter Property="Background" Value="Yellow"/> <Setter Property="FontSize" Value="22"/> </Trigger> </Style.Triggers> </Style> </Window.Resources> <Canvas> <TextBox Canvas.Top="80" Canvas.Left="30" Width="200" Style="{StaticResource TextBoxStyle}"/> <TextBox Canvas.Top="120" Canvas.Left="30" Width="200" Style="{StaticResource TextBoxStyle}"/> </Canvas>
Style类中有一个Triggers属性,通过它可以指定属性触发器.
在触发器的属性中赋予IsMouseOver Value设置True时触发Setter设置的属性内容
将鼠标放置在TextBox上,呈现如下图.