WPFの触发器详解
例子1 简单触发器Triggers——满足简答的条件,触发
- <Window x:Class="Styles.SimpleTriggers"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- Title="SimpleTriggers" Height="" Width=""
- >
- <Window.Resources>
- <Style x:Key="BigFontButton">
- <Style.Setters>
- <Setter Property="Control.FontFamily" Value="Times New Roman" />
- <Setter Property="Control.FontSize" Value="" />
- </Style.Setters>
- <Style.Triggers>
- <Trigger Property="Control.IsFocused" Value="True">
- <Setter Property="Control.Foreground" Value="DarkRed" />
- </Trigger>
- <!--<Trigger Property="Control.IsMouseOver" Value="True">
- <Setter Property="Control.Foreground" Value="LightYellow" />
- <Setter Property="Control.FontWeight" Value="Bold" />
- </Trigger>
- <Trigger Property="Button.IsPressed" Value="True">
- <Setter Property="Control.Foreground" Value="Red" />
- </Trigger>-->
- </Style.Triggers>
- </Style>
- </Window.Resources>
- <StackPanel Margin="">
- <Button Padding="" Margin=""
- Style="{StaticResource BigFontButton}"
- >A Customized Button</Button>
- <TextBlock Margin="">Normal Content.</TextBlock>
- <Button Padding="" Margin=""
- >A Normal Button</Button>
- <TextBlock Margin="">More normal Content.</TextBlock>
- <Button Padding="" Margin=""
- Style="{StaticResource BigFontButton}"
- >Another Customized Button</Button>
- </StackPanel>
- </Window>
例子2 条件多触发MultiTriggers——满足多条件才触发
- <MultiTrigger>
- <MultiTrigger.Conditions>
- <Condition Property="IsFocused" Value="True"></Condition>
- <Condition Property="Content" Value="{x:Null}"></Condition>
- </MultiTrigger.Conditions>
- <Setter Property="ToolTip" Value="content is null!"></Setter>
- </MultiTrigger>
- 例子3 事件触发器EventTrigger——在特定的路由事件发生时被触发,主要用于动画。
- <Style TargetType="ListBoxItem">
- <Setter Property="Opacity" Value="0.5" />
- <Setter Property="MaxHeight" Value="75" />
- <Style.Triggers>
- <Trigger Property="IsSelected" Value="True">
- <Trigger.Setters>
- <Setter Property="Opacity" Value="1.0" />
- </Trigger.Setters>
- </Trigger>
- <EventTrigger RoutedEvent="Mouse.MouseEnter">
- <EventTrigger.Actions>
- <BeginStoryboard>
- <Storyboard>
- <DoubleAnimation
- Duration="0:0:0.2"
- Storyboard.TargetProperty="MaxHeight"
- To="90" />
- </Storyboard>
- </BeginStoryboard>
- </EventTrigger.Actions>
- </EventTrigger>
- <EventTrigger RoutedEvent="Mouse.MouseLeave">
- <EventTrigger.Actions>
- <BeginStoryboard>
- <Storyboard>
- <DoubleAnimation
- Duration="0:0:1"
- Storyboard.TargetProperty="MaxHeight" />
- </Storyboard>
- </BeginStoryboard>
- </EventTrigger.Actions>
- </EventTrigger>
- </Style.Triggers>
- </Style>
例字4 数据触发器DataTrigger——根据绑定的数据不同显示不同的内容。
- <TreeView Name="_tree" Margin="0" BorderThickness="0" VerticalAlignment="Stretch" Background="Transparent" ItemsSource="{Binding Children}" >
- <TreeView.ItemTemplate>
- <HierarchicalDataTemplate ItemsSource="{Binding Children}">
- <Border CornerRadius="0" Margin="1" x:Name="back" MinWidth="70"
- Background="Transparent" DataContext="{Binding}" PreviewMouseMove="TreeItem_PreviewMouseMove">
- <StackPanel Orientation="Horizontal" Margin="2">
- <Image x:Name="BGimage" Source="/Vdc3D.Coms.DModelEditor;component/Images/item.png" Height="15" Width="15" />
- <TextBlock Text="{Binding ShowText}" Margin="2 0"/>
- </StackPanel>
- <Border.ContextMenu>
- <ContextMenu x:Name="menu" >
- <MenuItem Header="Add Directory" x:Name="menu_addDir" Click="AddDir_Click" DataContext="{Binding}"/>
- <MenuItem Header="Add Property" x:Name="menu_addChild" Click="AddChild_Click" DataContext="{Binding}"/>
- <MenuItem Header="Edit" Click="Modify_Click" DataContext="{Binding}"/>
- <MenuItem Header="Delete" Click="Delete_Click" DataContext="{Binding}"/>
- </ContextMenu>
- </Border.ContextMenu>
- </Border>
- <HierarchicalDataTemplate.Triggers>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type TreeViewItem}},Path=IsExpanded}" Value="False"/>
- <Condition Binding="{Binding IsDir}" Value="True"/>
- </MultiDataTrigger.Conditions>
- <MultiDataTrigger.Setters>
- <Setter TargetName="BGimage" Property="Source" Value="/Vdc3D.Coms.DModelEditor;component/Images/dir.png" />
- </MultiDataTrigger.Setters>
- </MultiDataTrigger>
- <MultiDataTrigger>
- <MultiDataTrigger.Conditions>
- <Condition Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type TreeViewItem}},Path=IsExpanded}" Value="True"/>
- <Condition Binding="{Binding IsDir}" Value="True"/>
- </MultiDataTrigger.Conditions>
- <MultiDataTrigger.Setters>
- <Setter TargetName="BGimage" Property="Source" Value="/Vdc3D.Coms.DModelEditor;component/Images/dir_open.png" />
- </MultiDataTrigger.Setters>
- </MultiDataTrigger>
- <DataTrigger Binding="{Binding IsDir}" Value="True">
- <Setter TargetName="menu_addDir" Property="Visibility" Value="Visible"/>
- <Setter TargetName="menu_addChild" Property="Visibility" Value="Visible"/>
- </DataTrigger>
- <DataTrigger Binding="{Binding IsDir}" Value="False">
- <Setter TargetName="menu_addDir" Property="Visibility" Value="Collapsed"/>
- <Setter TargetName="menu_addChild" Property="Visibility" Value="Collapsed"/>
- </DataTrigger>
- </HierarchicalDataTemplate.Triggers>
- </HierarchicalDataTemplate>
- </TreeView.ItemTemplate>
- </TreeView>
WPFの触发器详解的更多相关文章
- wpf中的触发器详解 (转自 乂乂的日志 - 网易博客)
2010-03-24 16:19:07| 分类: WPF相关 | 标签: |字号大中小 订阅 wpf中的触发器详解 WPF/C# 2009-08-24 11:32:50 7.1.2 简单 ...
- jekins构建触发器详解
jenkins版本:2.89.2 1.触发远程构建 (例如,使用脚本):通过一个网址的访问来触发构建,这样就不需要登录jenkins系统也能触发构建了. 示例地址: http://localhost: ...
- 问题: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 创 ...
- WPF DrawingVisual详解
在WPF中,如果需要绘制大量图形元素,并且对性能要求严苛的话,最好使用DrawingVisual,当然,你也可以选用 Path类和比Path类更轻量级的Geometry(几何形状)来实现你的需求,但是 ...
- wpf中的触发器详解
原文 http://zwkufo.blog.163.com/blog/static/25882512009724113250883/ 7.1.2 简单逻辑的表示--触发器(1) 在本章的多处介绍中都会 ...
- (转)ORACLE触发器详解
本文转载自:http://blog.csdn.net/indexman/article/details/8023740/ ORACLE PL/SQL编程之八: 把触发器说透 本篇主要内容如下: 8.1 ...
- oracle触发器详解(转)
触发器是许多关系数据库系统都提供的一项技术.在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块. 8.1 触发器类型 触发器在数据库里以独立的对象存储,它与存储过 ...
- ORACLE【1】:触发器详解
转自:http://blog.csdn.net/indexman/article/details/8023740 ORACLE PL/SQL编程之八: 把触发器说透 本篇主要内容如下: 8.1 触发器 ...
- [转载]Oracle触发器详解
转载自http://blog.csdn.net/indexman/article/details/8023740/ 触发器是许多关系数据库系统都提供的一项技术.在oracle系统里,触发器类似过程和函 ...
随机推荐
- springboot2.0+websocket集成【群发消息+单对单】(二)
https://blog.csdn.net/qq_21019419/article/details/82804921 版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上 ...
- go语言从例子开始之Example32.打点器
定时器 是当你想要在未来某一刻执行一次时使用的 - 打点器 则是当你想要在固定的时间间隔重复执行准备的.这里是一个打点器的例子,它将定时的执行,直到我们将它停止. Example: package m ...
- (转载)python判断一个字符串是否是小数
转载自:牛牛杂货铺 最近在写代码的时候,发现一个问题,想判断一个字符串是不是一个合法的小数,发现字符串没有内置判断小数的方法,然后就写了一个判断字符串是否是小数,可以判断正负小数,代码如下: def ...
- idea报错Diamond types are not supported at this language level
project structure中的project ,SDK选择1.8,Project language level选择8 project structure中的module,选择Language ...
- windows平台搭建Mongo数据库复制集(类似集群)(一)
Replica Sets(复制集)是在mongodDB1.6版本开始新增的功能,它可以实现故障自动切换和自动修复功能成员节点的功能,各个DB之间的数据完全一致,大大降低了单点故障的风险. [] 以上 ...
- Ehcahe spring
Ehcache系列二:Spring缓存注解@Cache使用 标签: CacheableCacheEvictCachePut 2016-06-06 16:37 2235人阅读 评论(0) 收藏 举报 ...
- 学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密
学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密 技术标签: RSA AES RSA AES 混合加密 整合 前言: 为了提高安全性采用了RS ...
- IO流 读写文件
读写文件 如前所述,一个流被定义为一个数据序列.输入流用于从源读取数据,输出流用于向目标写数据. 下图是一个描述输入流和输出流的类层次图. 下面将要讨论的两个重要的流是 FileInputStream ...
- find命令进阶(二):对找到的文件执行操作exec
以下面的命令为例: find ~ -type f -name 'foo*' -exec ls -l '{}' ';' 分面两部分,第一部分: find ~ -type f -name 'foo*' 即 ...
- k-近邻算法(kNN)准备数据:归一化数值
#准备数据:归一化数值 def autoNorm(dataSet): #autoNorm()函数可以自动将数字特征值转换为0到1的区间 minVals = dataSet.min(0) maxVals ...