Trigger触发器
<Window.Resources>
<!--- TargetType:表示作用在什么标签 -->
<Style x:Key="ButtonStyle" TargetType="TextBox">
<Setter Property="FontSize" Value="22"></Setter>
<Setter Property="Background" Value="Yellow"></Setter>
<Setter Property="Foreground" Value="Blue"></Setter>
<!--- Style.Triggers:属性触发器 -->
<Style.Triggers>
<!--- 表示鼠标进入时触发 -->
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Foreground" Value="White"></Setter>
</Trigger>
<!--- MultiTrigger 多条件触发器 -->
<MultiTrigger>
<!--- 触发器条件集合 -->
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="true"></Condition>
<Condition Property="IsFocused" Value="true"></Condition>
</MultiTrigger.Conditions>
<!--- 触发器样式 -->
<MultiTrigger.Setters>
<Setter Property="Background" Value="Brown"></Setter>
</MultiTrigger.Setters>
</MultiTrigger>
<!-- 数据触发器 -->
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=Self},Path=Text}" Value="123">
<Setter Property="Background" Value="Orange"></Setter>
</DataTrigger>
<!-- 多条件数据触发器 -->
<MultiDataTrigger>
<!-- 数据触发器条件集合 -->
<MultiDataTrigger.Conditions>
<!-- 触发条件 -->
<Condition Binding="{Binding RelativeSource={RelativeSource Mode=Self},Path=Text}" Value="123"></Condition>
</MultiDataTrigger.Conditions>
<!-- 数据触发器样式 -->
<MultiDataTrigger.Setters>
<Setter Property="FontSize" Value="32"></Setter>
</MultiDataTrigger.Setters>
</MultiDataTrigger>
<!-- 事件触发器 -->
<!-- 鼠标进入事件-->
<!-- RoutedEvent: 表示和标识路由事件,并声明其特征。 -->
<EventTrigger RoutedEvent="MouseEnter">
<!-- 开始一个故事板,并将其动画分发到它们的目标对象和属性。 -->
<BeginStoryboard>
<!-- 故事板 :用时间轴控制动画,并为其子动画提供对象和属性目标信息。-->
<Storyboard>
<!-- 在指定的 Duration 上使用线性内插对两个目标值之间的 Double 属性值进行动画处理。 -->
<!-- To: 动画从动画属性的基值或以前的动画的输出值进度到属性指定的 To 值。 -->
<!-- Duration: 获取或设置此时间线播放的时间长度,而不是计数重复。 -->
<!-- AccelerationRatio: 该值指定在将时间消逝从零加速到其最大速率的过程中所占用时间线的 Duration 的百分比。 -->
<!-- DecelerationRatio: 该值指定在将时间消逝从其最大速率减速到零的过程中所占用时间线的 Duration 的百分比。 -->
<!-- Storyboard.TargetProperty: 获取或设置应进行动画处理的属性。 -->
<DoubleAnimation From="50" To="300" Duration="0:0:1.5"
AccelerationRatio="0.10" DecelerationRatio="0.25"
Storyboard.TargetProperty="(TextBox.Width)" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation From="300" To="50" Duration="0:0:1.5"
AccelerationRatio="0.10" DecelerationRatio="0.25"
Storyboard.TargetProperty="(TextBox.Width)" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<StackPanel>
<!-- 使用样式 -->
<TextBox Style="{StaticResource ButtonStyle}"></TextBox>
<TextBox ></TextBox>
</StackPanel>