触发器系列(2) DataTrigger
来源:互联网 发布:淘宝能开发票吗 编辑:程序博客网 时间:2024/05/01 20:16
触发条件:
DataTrigger是以控件DataContext的属性作为触发条件
本例效果说明:
<!--当值为1时将外边框的背景色改为黑色-->
<!--当值为2时 改变透明度达到闪动的效果-->
代码如下:
<Window.Resources> <Style TargetType="Button" x:Key="newTemplate"> <Setter Property="Background" Value="Green"/> <Setter Property="Foreground" Value="Blue"/> <Setter Property="Content" Value="Content"/> <!-- Button 模板--> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Button"> <Border x:Name="RootElement"> <!--边框背景--> <Border.Background> <SolidColorBrush x:Name="BorderBrush" Color="Red"/> </Border.Background> <!--背景取值Setter里的Background /Margin 改变外边框的大小--> <Grid Background="{TemplateBinding Background}" Margin="6"> <Border x:Name="FocusVisual" Background="{TemplateBinding Foreground}" Opacity="0"> </Border> <TextBlock x:Name="texb" Height="24" Text="{TemplateBinding Content}" ></TextBlock> </Grid> </Border> <!--以下是触发器--> <ControlTemplate.Triggers> <!--当值为1时将外边框的背景色改为黑色--> <DataTrigger Binding="{Binding ElementName=texb, Path=Text}" Value="1"> <Setter TargetName="RootElement" Property="Background" Value="Black"></Setter> </DataTrigger> <!--当值为2时 改变透明度达到闪动的效果--> <DataTrigger Binding="{Binding ElementName=texb, Path=Text}" Value="2"> <DataTrigger.EnterActions> <BeginStoryboard x:Name="playAnimation"> <Storyboard Storyboard.TargetName="FocusVisual" Storyboard.TargetProperty="Opacity" > <DoubleAnimation AutoReverse="True" RepeatBehavior="Forever" To="1" Duration="0:0:1" /> </Storyboard> </BeginStoryboard> </DataTrigger.EnterActions> <!--停止闪动动画--> <DataTrigger.ExitActions> <StopStoryboard BeginStoryboardName="playAnimation"> </StopStoryboard> </DataTrigger.ExitActions> </DataTrigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </Window.Resources> <Grid> <Button x:Name="btn1" Width="100" Height="100" Content="1" ClickMode="Press" Style="{StaticResource newTemplate}" Click="btn1_Click"> </Button> <Button Height="20" Margin="6,35,211,245" RenderTransformOrigin="0.325,-1.2" Click="Button_Click_1">常规高亮显示</Button> <Button Height="20" Margin="162,40,55,240" RenderTransformOrigin="0.325,-1.2" Click="Button_Click_2">高亮闪烁显示</Button> </Grid></Window>效果图如下:
0 0
- 触发器系列(2) DataTrigger
- WPF触发器(Trigger、DataTrigger、EventTrigger)
- WPF触发器(Trigger、DataTrigger、EventTrigger)
- 触发器系列(1)Trigger
- PL/SQL_触发器2(行触发器)
- WPF中的datatrigger
- WPF DataTrigger Converter
- Property trigger VS DataTrigger
- mysql系列:触发器使用
- 触发器(2)
- SQL Server CLR系列(2)-创建触发器与手动部署
- MySQL学习系列11:触发器
- SQL Server系列(8) -- 触发器
- MySQL系列教程二---触发器
- 触发器-2
- 触发器2
- Oracle触发器2-DML触发器
- 触发器一(触发器简介)
- 黑马程序员笔记——Java函数
- android 程序运行出现 java.lang.NoClassDefFoundError的原因与解决方法之一
- ios学习重点
- ant 语法
- 在OpenCasCade的获得一个曲面的边界线
- 触发器系列(2) DataTrigger
- 如何使用搜索技巧来成为一名高效的程序员(很好的总结)
- Android的getSystemService(String)
- ios 下创建,删除文件夹的方法
- asp.net 自动刷新父窗体
- boost常用记录
- STM32 中断
- 基于SharePoint组显示或隐藏SharePoint 2010 功能区
- 使用 Ratinal Purecoverage 进行 C++ 代码覆盖率分析