Trigger分類
Trigger
MultiTrigger
DataTrigger
MultiDataTrigger
EventTrigger
EventTrigger
指定觸發(fā)的事件,觸發(fā)事件之后執(zhí)行的內(nèi)容荠耽,這里寫了兩個(gè)動畫效果
<CheckBox Content="隨著鼠標(biāo)劃入劃出糠赦,長度改變" HorizontalAlignment="Left" Width="70">
<CheckBox.Resources>
<Style TargetType="{x:Type CheckBox}">
<Setter Property="Foreground" Value="OrangeRed"></Setter>
<Style.Triggers>
<!--當(dāng)鼠標(biāo)劃入悟耘,增加長度-->
<EventTrigger RoutedEvent="MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<!--這里設(shè)置了一個(gè)動畫,持續(xù)時(shí)間是0.2秒,改變屬性為Width斑举,目標(biāo)數(shù)值是200-->
<DoubleAnimation Duration="0:0:0.2"
Storyboard.TargetProperty="Width"
To="200"></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<!--當(dāng)鼠標(biāo)劃出,減小長度-->
<EventTrigger RoutedEvent="MouseLeave">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:0.2"
Storyboard.TargetProperty="Width"
To="70"></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
</CheckBox.Resources>
</CheckBox>
Trigger
<Grid>
<Grid.Resources>
<Style x:Key="ButtonStyle" TargetType="Button">
<Setter Property="Foreground" Value="DarkOrange"></Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="DarkRed"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Grid.Resources>
<Button Content="鼠標(biāo)滑過時(shí)病涨,修改字體顏色" Style="{StaticResource ButtonStyle}"></Button>
</Grid>
DataTrigger
根據(jù)值富玷,設(shè)置對應(yīng)的效果
這里設(shè)置的是行頭和單元格的效果,也可以設(shè)置為其他屬性
<Window.Resources>
<!--單元格的樣式-->
<Style TargetType="DataGridCell" x:Key="ColorCell">
<Style.Triggers>
<DataTrigger Binding="{Binding Type}" Value="0">
<Setter Property="Background" Value="Pink"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Type}" Value="1">
<Setter Property="Background" Value="Coral"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Type}" Value="2">
<Setter Property="Background" Value="Crimson"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<DataGrid ItemsSource="{Binding }" AutoGenerateColumns="False">
<!--行頭的樣式-->
<DataGrid.RowHeaderStyle>
<Style TargetType="DataGridRowHeader">
<Style.Triggers>
<DataTrigger Binding="{Binding Type}" Value="0">
<Setter Property="Background" Value="Pink"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Type}" Value="1">
<Setter Property="Background" Value="Coral"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Type}" Value="2">
<Setter Property="Background" Value="Crimson"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowHeaderStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="Type值" Width="*" Binding="{Binding TypeValue}"/>
<DataGridTextColumn Header="Type效果" Width="*" Binding="{Binding Type}" CellStyle="{StaticResource ColorCell}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
效果
1
示例代碼
https://github.com/zLulus/NotePractice/tree/dev3/WPF/WpfDemo/Trigger