触发器系列(2) DataTrigger
2014-05-29 17:43
190 查看
触发条件:
DataTrigger是以控件DataContext的属性作为触发条件
本例效果说明:
<!--当值为1时将外边框的背景色改为黑色-->
<!--当值为2时 改变透明度达到闪动的效果-->
代码例如以下:
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>效果图例如以下:
相关文章推荐
- 触发器系列(2) DataTrigger
- Silverlight实用窍门系列:61.Silverlight中的Trigger触发器,自定义翻页触发器
- MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句
- [MySQL FAQ]系列 -- 如何利用触发器实现账户权限审计
- Silverlight实用窍门系列:61.Silverlight中的Trigger触发器,自定义翻页触发器
- Dynamics CRM 2011 编程系列(27):使用触发器
- Quartz.NET 架构与源代码分析系列 part 3 :Trigger 触发器
- .Net程序员学用Oracle系列(25):触发器详解
- MySQL学习系列11:触发器
- IC设计基础系列之CDC篇6:从CMOS到触发器(一)
- MySQL系列(十一):触发器
- Quartz.NET学习系列(十)--- 触发器执行优先级
- SqlServer系列笔记——触发器
- IC设计基础系列之CDC篇6:从CMOS到触发器(一)
- [转载]WPF中触发器Trigger、MultiTrigger、DataTrigger、MultiDataTrigger、EventTrigger几种
- Oracle 数据同步系列--触发器
- 【数据库系列】之存储过程与触发器
- SqlServer系列笔记——触发器2
- Mysql系列课程--第七章 触发器和存储过程
- IC设计基础系列之CDC篇7:从CMOS到触发器(二)