触发器基本上使您能够更改属性值或根据属性值采取行动。因此,它允许您动态地更改控件的外观和/或行为,而无需创建新的控件。
当满足某些条件时,触发器用于更改任何给定属性的值。触发器通常在应用于特定控件的样式或文档根中定义。有三种类型的触发器
• 属性触发器
• 数据触发器
• 事件触发器
属性触发器
在属性触发器中,当一个属性发生更改时,它将立即或动态地更改另一个属性。例如,当鼠标悬停在按钮上时,可以使用属性触发器来更改按钮的外观。
下面的示例代码显示了当鼠标悬停在按钮上时如何更改按钮的前景色。
<Window x:Class="trigger.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:trigger"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Style x:Key = "TriggerStyle" TargetType = "Button">
<Setter Property = "Foreground" Value = "Blue" />
<Style.Triggers>
<Trigger Property = "IsMouseOver" Value = "True">
<Setter Property = "Foreground" Value = "Green" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<Button Width = "100" Height = "70"
Style = "{StaticResource TriggerStyle}" Content = "Trigger"/>
</Grid>
</Window>
执行上述代码时,它将产生以下窗口:
当鼠标悬停在按钮上时,它的前景色将变为绿色