例子1 简单触发器Triggers——满足简答的条件,触发

  1. <Window x:Class="Styles.SimpleTriggers"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. Title="SimpleTriggers" Height="" Width=""
  5. >
  6. <Window.Resources>
  7. <Style x:Key="BigFontButton">
  8. <Style.Setters>
  9. <Setter Property="Control.FontFamily" Value="Times New Roman" />
  10. <Setter Property="Control.FontSize" Value="" />
  11.  
  12. </Style.Setters>
  13. <Style.Triggers>
  14. <Trigger Property="Control.IsFocused" Value="True">
  15. <Setter Property="Control.Foreground" Value="DarkRed" />
  16. </Trigger>
  17. <!--<Trigger Property="Control.IsMouseOver" Value="True">
  18. <Setter Property="Control.Foreground" Value="LightYellow" />
  19. <Setter Property="Control.FontWeight" Value="Bold" />
  20. </Trigger>
  21. <Trigger Property="Button.IsPressed" Value="True">
  22. <Setter Property="Control.Foreground" Value="Red" />
  23. </Trigger>-->
  24. </Style.Triggers>
  25. </Style>
  26. </Window.Resources>
  27.  
  28. <StackPanel Margin="">
  29. <Button Padding="" Margin=""
  30. Style="{StaticResource BigFontButton}"
  31. >A Customized Button</Button>
  32. <TextBlock Margin="">Normal Content.</TextBlock>
  33. <Button Padding="" Margin=""
  34. >A Normal Button</Button>
  35. <TextBlock Margin="">More normal Content.</TextBlock>
  36. <Button Padding="" Margin=""
  37. Style="{StaticResource BigFontButton}"
  38. >Another Customized Button</Button>
  39. </StackPanel>
  40. </Window>

例子2 条件多触发MultiTriggers——满足多条件才触发

  1. <MultiTrigger>
  2. <MultiTrigger.Conditions>
  3. <Condition Property="IsFocused" Value="True"></Condition>
  4. <Condition Property="Content" Value="{x:Null}"></Condition>
  5. </MultiTrigger.Conditions>
  6.  
  7. <Setter Property="ToolTip" Value="content is null!"></Setter>
  8. </MultiTrigger>
  1. 例子3 事件触发器EventTrigger——在特定的路由事件发生时被触发,主要用于动画。
  1. <Style TargetType="ListBoxItem">
  2. <Setter Property="Opacity" Value="0.5" />
  3. <Setter Property="MaxHeight" Value="75" />
  4. <Style.Triggers>
  5. <Trigger Property="IsSelected" Value="True">
  6. <Trigger.Setters>
  7. <Setter Property="Opacity" Value="1.0" />
  8. </Trigger.Setters>
  9. </Trigger>
  10. <EventTrigger RoutedEvent="Mouse.MouseEnter">
  11. <EventTrigger.Actions>
  12. <BeginStoryboard>
  13. <Storyboard>
  14. <DoubleAnimation
  15. Duration="0:0:0.2"
  16. Storyboard.TargetProperty="MaxHeight"
  17. To="90" />
  18. </Storyboard>
  19. </BeginStoryboard>
  20. </EventTrigger.Actions>
  21. </EventTrigger>
  22. <EventTrigger RoutedEvent="Mouse.MouseLeave">
  23. <EventTrigger.Actions>
  24. <BeginStoryboard>
  25. <Storyboard>
  26. <DoubleAnimation
  27. Duration="0:0:1"
  28. Storyboard.TargetProperty="MaxHeight" />
  29. </Storyboard>
  30. </BeginStoryboard>
  31. </EventTrigger.Actions>
  32. </EventTrigger>
  33. </Style.Triggers>
  34. </Style>

  

  1.  

例字4 数据触发器DataTrigger——根据绑定的数据不同显示不同的内容。

  1. <TreeView Name="_tree" Margin="0" BorderThickness="0" VerticalAlignment="Stretch" Background="Transparent" ItemsSource="{Binding Children}" >
  2. <TreeView.ItemTemplate>
  3. <HierarchicalDataTemplate ItemsSource="{Binding Children}">
  4. <Border CornerRadius="0" Margin="1" x:Name="back" MinWidth="70"
  5. Background="Transparent" DataContext="{Binding}" PreviewMouseMove="TreeItem_PreviewMouseMove">
  6. <StackPanel Orientation="Horizontal" Margin="2">
  7. <Image x:Name="BGimage" Source="/Vdc3D.Coms.DModelEditor;component/Images/item.png" Height="15" Width="15" />
  8. <TextBlock Text="{Binding ShowText}" Margin="2 0"/>
  9. </StackPanel>
  10. <Border.ContextMenu>
  11. <ContextMenu x:Name="menu" >
  12. <MenuItem Header="Add Directory" x:Name="menu_addDir" Click="AddDir_Click" DataContext="{Binding}"/>
  13. <MenuItem Header="Add Property" x:Name="menu_addChild" Click="AddChild_Click" DataContext="{Binding}"/>
  14. <MenuItem Header="Edit" Click="Modify_Click" DataContext="{Binding}"/>
  15. <MenuItem Header="Delete" Click="Delete_Click" DataContext="{Binding}"/>
  16. </ContextMenu>
  17. </Border.ContextMenu>
  18. </Border>
  19. <HierarchicalDataTemplate.Triggers>
  20. <MultiDataTrigger>
  21. <MultiDataTrigger.Conditions>
  22. <Condition Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type TreeViewItem}},Path=IsExpanded}" Value="False"/>
  23. <Condition Binding="{Binding IsDir}" Value="True"/>
  24. </MultiDataTrigger.Conditions>
  25. <MultiDataTrigger.Setters>
  26. <Setter TargetName="BGimage" Property="Source" Value="/Vdc3D.Coms.DModelEditor;component/Images/dir.png" />
  27. </MultiDataTrigger.Setters>
  28. </MultiDataTrigger>
  29. <MultiDataTrigger>
  30. <MultiDataTrigger.Conditions>
  31. <Condition Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type TreeViewItem}},Path=IsExpanded}" Value="True"/>
  32. <Condition Binding="{Binding IsDir}" Value="True"/>
  33. </MultiDataTrigger.Conditions>
  34. <MultiDataTrigger.Setters>
  35. <Setter TargetName="BGimage" Property="Source" Value="/Vdc3D.Coms.DModelEditor;component/Images/dir_open.png" />
  36. </MultiDataTrigger.Setters>
  37. </MultiDataTrigger>
  38. <DataTrigger Binding="{Binding IsDir}" Value="True">
  39. <Setter TargetName="menu_addDir" Property="Visibility" Value="Visible"/>
  40. <Setter TargetName="menu_addChild" Property="Visibility" Value="Visible"/>
  41. </DataTrigger>
  42. <DataTrigger Binding="{Binding IsDir}" Value="False">
  43. <Setter TargetName="menu_addDir" Property="Visibility" Value="Collapsed"/>
  44. <Setter TargetName="menu_addChild" Property="Visibility" Value="Collapsed"/>
  45. </DataTrigger>
  46. </HierarchicalDataTemplate.Triggers>
  47. </HierarchicalDataTemplate>
  48. </TreeView.ItemTemplate>
  49. </TreeView>

  

WPFの触发器详解的更多相关文章

  1. wpf中的触发器详解 (转自 乂乂的日志 - 网易博客)

    2010-03-24 16:19:07|  分类: WPF相关 |  标签: |字号大中小 订阅     wpf中的触发器详解 WPF/C# 2009-08-24 11:32:50 7.1.2  简单 ...

  2. jekins构建触发器详解

    jenkins版本:2.89.2 1.触发远程构建 (例如,使用脚本):通过一个网址的访问来触发构建,这样就不需要登录jenkins系统也能触发构建了. 示例地址: http://localhost: ...

  3. 问题:Oracle出发器;结果:1、Oracle触发器详解,2、Oracle触发器示例

    ORACLE触发器详解 本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创 ...

  4. WPF DrawingVisual详解

    在WPF中,如果需要绘制大量图形元素,并且对性能要求严苛的话,最好使用DrawingVisual,当然,你也可以选用 Path类和比Path类更轻量级的Geometry(几何形状)来实现你的需求,但是 ...

  5. wpf中的触发器详解

    原文 http://zwkufo.blog.163.com/blog/static/25882512009724113250883/ 7.1.2 简单逻辑的表示--触发器(1) 在本章的多处介绍中都会 ...

  6. (转)ORACLE触发器详解

    本文转载自:http://blog.csdn.net/indexman/article/details/8023740/ ORACLE PL/SQL编程之八: 把触发器说透 本篇主要内容如下: 8.1 ...

  7. oracle触发器详解(转)

    触发器是许多关系数据库系统都提供的一项技术.在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块. 8.1 触发器类型 触发器在数据库里以独立的对象存储,它与存储过 ...

  8. ORACLE【1】:触发器详解

    转自:http://blog.csdn.net/indexman/article/details/8023740 ORACLE PL/SQL编程之八: 把触发器说透 本篇主要内容如下: 8.1 触发器 ...

  9. [转载]Oracle触发器详解

    转载自http://blog.csdn.net/indexman/article/details/8023740/ 触发器是许多关系数据库系统都提供的一项技术.在oracle系统里,触发器类似过程和函 ...

随机推荐

  1. springboot2.0+websocket集成【群发消息+单对单】(二)

    https://blog.csdn.net/qq_21019419/article/details/82804921 版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上 ...

  2. go语言从例子开始之Example32.打点器

    定时器 是当你想要在未来某一刻执行一次时使用的 - 打点器 则是当你想要在固定的时间间隔重复执行准备的.这里是一个打点器的例子,它将定时的执行,直到我们将它停止. Example: package m ...

  3. (转载)python判断一个字符串是否是小数

    转载自:牛牛杂货铺 最近在写代码的时候,发现一个问题,想判断一个字符串是不是一个合法的小数,发现字符串没有内置判断小数的方法,然后就写了一个判断字符串是否是小数,可以判断正负小数,代码如下: def ...

  4. idea报错Diamond types are not supported at this language level

    project structure中的project ,SDK选择1.8,Project language level选择8 project structure中的module,选择Language ...

  5. windows平台搭建Mongo数据库复制集(类似集群)(一)

    Replica  Sets(复制集)是在mongodDB1.6版本开始新增的功能,它可以实现故障自动切换和自动修复功能成员节点的功能,各个DB之间的数据完全一致,大大降低了单点故障的风险. [] 以上 ...

  6. Ehcahe spring

    Ehcache系列二:Spring缓存注解@Cache使用 标签: CacheableCacheEvictCachePut 2016-06-06 16:37 2235人阅读 评论(0) 收藏 举报   ...

  7. 学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密

      学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密 技术标签: RSA  AES  RSA AES  混合加密  整合   前言:   为了提高安全性采用了RS ...

  8. IO流 读写文件

    读写文件 如前所述,一个流被定义为一个数据序列.输入流用于从源读取数据,输出流用于向目标写数据. 下图是一个描述输入流和输出流的类层次图. 下面将要讨论的两个重要的流是 FileInputStream ...

  9. find命令进阶(二):对找到的文件执行操作exec

    以下面的命令为例: find ~ -type f -name 'foo*' -exec ls -l '{}' ';' 分面两部分,第一部分: find ~ -type f -name 'foo*' 即 ...

  10. k-近邻算法(kNN)准备数据:归一化数值

    #准备数据:归一化数值 def autoNorm(dataSet): #autoNorm()函数可以自动将数字特征值转换为0到1的区间 minVals = dataSet.min(0) maxVals ...