-
- 当依赖属性的值改变了,WPF就会自动根据属性的元数据(metadata)触发一系列动作,这就叫做变更通知。
- 属性触发器是变更通知的特性之一。即当属性值改变时,执行自定义动作,而不需要更改任何过程式代码。
- 属性触发器不能直接应用到元素上,它只能在Style对象内部应用。
- 除了属性触发器,还有数据触发器和事件触发器。事件触发器会通过声明方式指定动作,该动作在路由事件触发时生效。
3.2.2 变更通知
例如:
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="Blue" />
</Trigger>
上面触发器基于Button的IsMouseOver属性工作,在MouseEnter触发时,IsMouseOver属性变为true,触发器将Foreground设置为Blue;在MouseLeave触发时,IsMouseOver属性变为false,WPF自动将触发器的改动还原。
例如:
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="About WPF Unleashed"
Background="OrangeRed">
<StackPanel>
<Button Width="100">
OK
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="Blue" />
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</StackPanel>
</Page>