WPF学习心得(3)——触发器

WPF如何使用触发器 1.WPF如何实现下面的功能 2.下面就是利用属性触发器实现 阅读详情

WPF学习心得(3)

 

 

触发器

 

触发器包括以下几种:

属性触发器

EventTrigger 和 Storyboard

MultiTrigger、DataTrigger 和 MultiDataTrigger

 

本系统讨论其中的两种:属性触发器和事件触发器,由于属性只能出现在样式中,故本文只讨论事件触发器,属性触发器的内容将在样式一章中涉及。

 

示例代码如下:

<Window x:Class="WpfApplication30.Window3"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Title="Window3" Height="300" Width="300">

    <Window.Resources>

        <EventTrigger RoutedEvent="Button.MouseEnter" x:Key="btnEventTrigger">

                <BeginStoryboard>

                    <Storyboard>

                    <DoubleAnimation Storyboard.TargetProperty="Width" To="200" AutoReverse="True" Duration="0:0:0.2" />

                    <DoubleAnimation Storyboard.TargetProperty="Height" To="200" AutoReverse="True" Duration="0:0:0.2" />

                    </Storyboard>

                </BeginStoryboard>

        </EventTrigger>

    </Window.Resources>

    <Grid >

        <Button Content="Button1" Margin="12,21,0,0" Height="43" HorizontalAlignment="Left" VerticalAlignment="Top" Width="80">

            <Button.Triggers>

                <EventTrigger RoutedEvent="Button.MouseEnter">

                    <BeginStoryboard>

                        <Storyboard>

                            <DoubleAnimation Storyboard.TargetProperty="Height" To="200" AutoReverse="True" Duration="0:0:0.2" />

                            <DoubleAnimation Storyboard.TargetProperty="Width" To="200" AutoReverse="True" Duration="0:0:0.2" />

                        </Storyboard>

                    </BeginStoryboard>

                </EventTrigger>

            </Button.Triggers>

        </Button>

        <Button Content="Button2" Margin="12,0,0,21" Height="46" VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="73">

            <Button.Triggers>

                <StaticResource ResourceKey="btnEventTrigger"/>

            </Button.Triggers>

        </Button>

    </Grid>

</Window>

 

首先要说明,控件的Triggers属性虽然是一个TriggerCollection类型(其元素类型为TriggerBase),但实际上只支持事件触发器,即EventTrigger。

 

下面逐行分析:

<EventTrigger RoutedEvent="Button.MouseEnter">

这里指定了触发条件,即当触发何种事件时响应该触发器,因为没有指定TargetType(实际上这里没法指定,但是在样式里可以从父级继承过来),所以必须用【类型.成员】的方式指定事件名(这是必然的,否则何处找寻该成员?(^_^))。

 

<BeginStoryboard>

触发器有三个表示其响应后行为的集合:

Actions

EnterActions

ExitActions

而对于事件触发器,只有Actions是有效的,这里的等效代码是:

<EventTrigger RoutedEvent="Button.MouseEnter">

            <EventTrigger.Actions>

                <BeginStoryboard>

所以你可以推测出BeginStoryboard是一种行为(Action),它可以承载Storyboard以执行操作

 

<Storyboard>

情节提要可以包含一系统的时间线来表示动画

 

<DoubleAnimation Storyboard.TargetProperty="Width" To="200" AutoReverse="True" Duration="0:0:0.2" />

这是表示浮点数的动画,Storyboard.TargetProperty="Width"用于指示需要进行改变的属性,To表示目标值(由于没有指定初始值,默认为控件的当前值),AutoReverse属性指示在动画完成后,是否自动返回到原来的状态,Duration指定动画执行的时间尺度。

WPF触发器的分类及使用 WPF触发器的分类及使用 触发器简介   在WPF中,是这样描述触发器的,在属性改变或触发事件时设置属性或启动操作。意思很明了,满足两个条件中任意一个:1、属性改变 2、某一个事件触发,结果就是上面条件发生了,就设置其它的一些属性,或者能启动某个动作。这就是WPF中触发器的作用。在WPF中,触发器按触发的类别可以分为三类,即属性触发器、事件触发器、数据触发器,按触发条件的数量可以划分为:多条件触发器、单条件触发器。下面将按类别进行讲解。 属性触发器(PropertyTrigger)   在属性值发生更改时 阅读详情

相关推荐

WPF触发器:动态UI设计的终极指南

本文详细介绍了Windows Presentation Foundation (WPF)中的触发器系统,包括其基本概念、类型及应用场景。WPF触发器系统允许开发者根据条件变化动态调整UI元素的外观和行为,减少代码耦合,提高可维护性。文章主要探讨了四种触发器类型:属性触发器(Property Trigger)、数据触发器(DataTrigger)、多条件触发器(MultiTrigger 和 MultiDataTrigger)以及事件触发器(EventTrigger),并通过示例代码和GIF演示了它们的具体应用

冰茶的博客 1556

WPF学习感受

WPF是微软推出的一个先进的界面类库,具有高度的可定制性,吸收了很多html的思想,打破了传统的假面编程思路,很有创造力。 尤其是当WPF采用了XAML作为界面描述语言之后,更加简化了WPF编程的难度,专门设计的Visual studio编程IDE对于WPF的支持更是无以复加,称得上是绝配。 但是,学习了这么久的WPF,给我的一个感触就是:垃圾。

heisehuanyin的博客 3836

wpf触发器

例如,Value=“False” 表示 IsEnabled 属性的值为 False 时,条件满足。例如,Value=“True” 表示 IsEnabled 属性的值为 True 时,条件满足。MultiDataTrigger 允许你定义多个条件,只有当所有条件都满足时,触发器才会生效。当指定的控件属性值发生变化时,WPF 会重新评估 PropertyTrigger 的条件。MultiTrigger 允许你定义多个属性条件,只有当所有条件都满足时,触发器才会生效。如果不满足,则恢复到其他样式设置或默认值。

weixin_61819056的博客 1100

C#/WPF 程序设计心得(二)

1、借助C#对UDP的封装,可以简单的实现新闻广告信息的发布和推送,通过使用UDP组播技术,服务器使用D类IP(程序上的),客户端加入组播组,同时结合路由器(支持IGMP internet 网关管理协议)可完成一对多的组播任务。 2、GDI、GDI+ 是硬件驱动程序和用户软件的桥梁,是win 32的一部分,也就是说是c函数接口,用户无法直接操作硬件,只能是内存级的操作,多用于普通应用软件界面设计。...

松篁 263

WPF学习心得 ppt+demo

接触了差不多一年的WPF 参考开源资源后自行整理了这个资料 包括ppt和demo演示 内容有: 1、WPF布局 2、WPF控件 3、样式篇 4、绑定篇 5、依赖属性 6、MVVM

东方财富网 数据访问接口及字段说明

东方财富网 数据访问接口和字段说明

雨中山草 2万+

wpf DataTrigger的使用

<Window x:Class="WpfApp5.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" x.

dxm809的博客 441

three.js 载入 3D 模型的方法

三维模型的加载器ColladaLoader模型加载器。GLTFLoader模型加载器。OBJLoader模型加载器。FBXLoader模型加载器。

w418856的博客 4362

WPF 基础(十六)WPF 四大触发器总结

参考: https://blog.youkuaiyun.com/lhx527099095/article/details/8029207 例子1简单触发器Triggers——满足简答的条件,触发 <Window x:Class="Styles.SimpleTriggers" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pr...

xpj8888的博客 9399

【Pico手势开发实战】基于SteamVR串流与MRTK3的跨平台交互方案

本文详细介绍了在Pico设备上,结合SteamVR串流与微软MRTK3框架,实现高效跨平台手势交互开发的完整方案。该方案通过在PC端运行Unity项目并串流至头显,利用MRTK3封装的手势识别与交互组件,大幅提升了开发调试效率与性能上限,并确保了未来向其他OpenXR设备的良好兼容性。

weixin_29001683的博客 216

deepin搭建samba服务器

一.为什么要用Samba? Samba的主要任务就是实现Linux系统和Windows系统之间的资源共享。二.需要的软件? 我是在deepin上实现的,在终端中使用一下两句命令,就可以安装Samba的软件包 $sudo apt-get install samba //安装samba 三.Samba服务的组成 Samba的核心是两个守护进程smbd和nmbd。当然,它

xbrother123的博客 8598

简述WPF中各类触发器

触发器(Trigger)通常指的是一种事件驱动机制,用于响应特定的事件或条件。WPF触发器是WPF中一种强大的功能,允许开发者在样式和模板中定义条件逻辑,以响应属性值的变化。WPF提供了多种触发器来实现样式和模板中的动态行为。文中主要讲一下属性触发器事件触发器样式触发器数据触发器和多触发器五种触发器的概念以及他们之间的区别。属性触发器:简单直接,适用于基于控件内部状态变化的样式调整,但缺乏对外部数据的响应能力。事件触发器:响应用户交互,适合启动动画或命令,但不具备条件持续检查的能力。样式触发器。

qq_47159522的博客 2372

告别GUI点点点:Formality形式化验证的TCL脚本自动化实战(附完整脚本)

本文详细介绍了如何通过TCL脚本实现Formality形式化验证的全流程自动化,显著提升验证效率并降低错误率。内容涵盖脚本框架解析、参数化设计、验证报告生成及团队协作策略,特别适合芯片设计工程师摆脱传统GUI操作,实现300%以上的效率提升。

weixin_33737134的博客 282

WPF的触发器(Trigger)

WPF(Windows Presentation Foundation)是微软.NET框架的一部分,用于构建Windows客户端应用程序。在WPF中,触发器(Triggers)是一种强大的功能,允许开发者根据控件的状态或属性值来动态改变控件的外观和行为。触发器通常用于样式(Styles)和模板(Templates)中。触发器,是指在既定条件或者特殊场景下被触发,从而去执行一个操作。在WPF中,触发器可以分为以下几类:基本触发器(Trigger);事件触发器(EventTrigger);

去追随使你安宁的东西,去做你觉得有用的事情 2964

【赛题解析&命令脚本配置】2023年全国职业院校技能大赛GZ073网络系统管理赛项赛题第9套模块A:网络构建 & (三)无线网络配置+(四)出口网络配置-命令配置

【赛题解析&命令脚本配置】2023年全国职业院校技能大赛GZ073网络系统管理赛项赛题第9套模块A:网络构建 & (三)无线网络配置+(四)出口网络配置-命令配置

君逍遥o 1017

【测开求职】面试题:操作系统 吐血整理

本篇文章是笔者为准备研究生复试和校招而写,因此主要针对问答,注重理解,而不在于细节计算。涵盖考研范围内的所有知识内容,读者可以先查看上面的链接走一遍操作系统的整体框架结构。其中,重点难点以及易混淆的知识点,笔者用其他文章进行了详述,在知识点处贴好了链接,有需要的可以查阅。另外操作系统在校招中有非常明显的重点,一般情况下只会考察进程管理,内存管理,和设备管理,且这三者考察频率依次递减,文件管理基本不会考察。

vector的博客 7908

WPF触发器

WPF主要有三种类型的触发器:属性触发器(PropertyTrigger)、事件触发器(EventTrigger)和数据触发器(DataTrigger)

weixin_46540714的博客 1294

基于STM32设计的指针式电子钟与万年历(升级版)

这是基于STM32设计的一个指针式电子钟+万年历小项目,采用3.5寸的LCD屏显示时钟,日历、温度、天气,支持触摸屏调整设置时间,设置闹钟,查看日历等等。整体项目主要是技术点就是LCD屏的图形绘制。比如: 时钟的时针绘制、分针、秒针、表盘、日历绘制等等。

1万+

WPF触发器与模板

触发器可以理解为,当达到了触发的条件,那么就执行预期内的响应,可以是样式、数据变化、动画等。

互联网底层民工的博客 1933

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

WPF 触发器

WPF 触发器有多种形式,分为3类:属性触发器,事件触发器和数据触发器。下面分别使用实际的代码来说明。属性触发器:最常见的触发器是属性触发器,它在标记中简单地用<Trigger>元素定义。 它在所有者控件上监视特定属性,并且当该属性具有与指定值匹配的值时,可以更改属性。例如: <TextBlock Text="Hello, style trigger !" FontSize="28" HorizontalAlignment="Center" VerticalAlig

flysh05的专栏 1529

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

WPF组件的自定义模板和触发器全面解析

WPF中的模板是为控件定义视觉结构的XAML资源。模板可以大幅度改变控件的外观,而不改变其行为。:用于定义控件的外观。:用于定义数据对象的可视化表现。:用于定义组合控件内部的布局。此示例将展示如何结合使用ControlTemplate和触发器,创建一个自定义的状态按钮:

百锦再的博客 2万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

关于WPF触发器

触发器 使用触发器,可以动态地更改控件的外观,因为一些属性值改变了。例如,用户把鼠标移动到按钮上,按钮就会改变其外观。通常,者必须在C#代码中实现,使用WPF,也可以用XAML实现,而这只会影响UI XAML有几个触发器。 属性触发器在属性值改变时激活。 多触发器基于多个属性值。 事件触发器在事件发生时激活。 数据触发器在绑定的数据改变时激活。 属性触发器: Style类有一个Tr...

陈小白的博客 3480

WPF触发器(Trigger、DataTrigger、EventTrigger)

WPF中有种叫做触发器的东西(记住不是数据库的trigger哦)。它的主要作用是根据trigger的不同条件来自动更改外观属性,或者执行动画等操作。 WPFtrigger的主要类型有:Trigger、MultiTrigger、DataTrigger、MultiDataTrigger、EventTrigger几种。从字面意思上我们想大家已经知道个大概,接下来我将还会用实例代码逐一进行介绍。trig

Leo‘s Blog 4万+

WPF 触发器深入概述

深入探讨 **WPF 触发器(Triggers)**的使用,结合之前提供的 WPF 布局基础、数据绑定技术、样式基础、Prism 框架、MVVM 模式、动态模块加载 和 模块卸载技术 的上下文,提供详细的讲解、代码示例、测试代码、适用场景及使用方法。以下将全面介绍 WPF 触发器的各种类型(PropertyTrigger、DataTrigger、MultiTrigger、MultiDataTrigger、EventTrigger),包括其定义、实现、触发机制、动画支持等内容,并通过扩展的实时消息查看器示例(

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 1152
上一篇: WPF学习心得(2)——模板
下一篇: WPF版的WindowFromPoint
CsToD
博客等级 码龄19年 91粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值