首页 > 其他分享 >上位机_WPF系列总结(触发器)

上位机_WPF系列总结(触发器)

时间:2023-08-04 11:12:08浏览次数:40  
标签:动画 触发器 上位 事件 生效 WPF

当达到了出发的条件,执行设定的响应,可以是样式、数据变化、动画等。触发器的类型有:

Trigger:检测依赖属性的变化,触发器生效

<Window.Resources>
        <Style x:Key="TestStyle" TargetType="Button">
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Foreground" Value="Red" />
                </Trigger>
                <Trigger Property="IsMouseOver" Value="False">
                    <Setter Property="Foreground" Value="Blue" />
                </Trigger>
            </Style.Triggers>
        </Style>
</Window.Resources>

MultiTrigger:多个条件的设置、达到满足条件、触发器生效

 

<Window.Resources>
        <Style x:Key="TestStyle" TargetType="Button">
            <Style.Triggers>
                <MultiTrigger>
                    <MultiTrigger.Conditions>
                        <Condition Property="IsMouseOver" Value="true"/>
                        <Condition Property="IsFocused" Value="true"/>
                    </MultiTrigger.Conditions>
                    <MultiTrigger.Setters>
                        <Setter Property="FontSize" Value="20"/>
                    </MultiTrigger.Setters>
                </MultiTrigger>
            </Style.Triggers>
        </Style>
</Window.Resources>

 

 

 

DataTrigger:数据发生变化,触发器生效

 

    <Window.Resources>
        <Style x:Key="TestStyle" TargetType="TextBox">
            <Style.Triggers>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=Self},Path=Text}" Value="测试">
                    <Setter Property="Background" Value="Red"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>

 

 

 

MultiDataTrigger:多个数据发生变化,触发器生效

 

<Window.Resources>
        <Style x:Key="TestStyle" TargetType="TextBox">
            <Setter Property="Background" Value="Pink" />
            <Style.Triggers>
                <MultiDataTrigger>
                    <MultiDataTrigger.Conditions>
                        <Condition Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Text}" Value="测试" />
                        <Condition Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=IsFocused}" Value="true" />
                    </MultiDataTrigger.Conditions>
                    <MultiDataTrigger.Setters>
                        <Setter Property="Background" Value="Red" />
                        <Setter Property="FontSize" Value="20" />
                    </MultiDataTrigger.Setters>
                </MultiDataTrigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>

 

EventTrigger:事件触发器,触发了某类事件,触发器生效

 <Window.Resources>
        <Style x:Key="TestStyle" TargetType="Button">
            <Setter Property="Background" Value="Pink" />
            <Style.Triggers>
                <EventTrigger  RoutedEvent="MouseEnter">
                    <EventTrigger.Actions>
                        <BeginStoryboard>
                            <Storyboard>
                                <ColorAnimation To="Purple" Storyboard.TargetProperty="(Control.Foreground).(SolidColorBrush.Color)"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>

事件触发器有些不同的是,它触发执行的是一段动画,并且是通过RoutedEvent来执行要监视的事件

标签:动画,触发器,上位,事件,生效,WPF
From: https://www.cnblogs.com/appform/p/17605353.html

相关文章

  • WPF消息提示
    WPF消息提示使用.net6.0使用的NuGet包MaterialDesignThemes:4.9.0Prism.DryIoc:8.1.97我们要做一个类似ElementPlus或者AntDesign的Message,作为消息提示这样的交互比较友好,老是用MessageBox也挺难受,先不管动画效果吧分析这种消息提示在应用程序中是个有点怪的东西,因为一个......
  • 工控 上位机 WPF 跑马灯的实现
    工控上位机WPF跑马灯的实现 工业控制软件中,跑马灯是主界面比不可少的组件。本文基于WPF技术,讲解如何实现高效的跑马灯组件。 跑马灯的效果如下图: 在讲解如何实现之前,我们先看一下,跑马灯组件在主界面上是如何使用的,请看如下代码:<BorderGrid.Row=......
  • WPF svg转path(快速生成Path代码的方法)
    在使用WPF的Path作图时,我们可能会拿到美工出的一些比较复杂的图,今天查阅网上发现svg是可以自动转path的,特作记录。github:https://github.com/BerndK/SvgToXaml    设置途中项目为启动项目,然后点击svg图片 你是不是以为复制上面的M0,0一直到Z就OK了!那,我就不会写这篇......
  • WPF动态绑定隐藏或显示DataGrid一列
     因为datagridtemplatecolumn不在VirsualTree中,不能继承DataGrid的DataContext,所以想要绑定到datagridtemplatecolumn的visibility,需要添加一个代理 一、添加一個FrameworkElement的代理<Window.Resources><FrameworkElementx:Key="ProxyElement"DataContext......
  • 触发器
    两类a. 语句级触发器 —— 在某些语句执行前后触发b. 行级触发器 —— 在表内的行数据有发生变化的时候触发 语法123456create[orreplace]tigger触发器名触发时间触发事件on表名[foreachrow]begin pl/sql语句end ......
  • WPF使用FluentValidation进行表单验证
    WPF使用FluentValidation进行表单验证.net版本:6.0使用的NuGet包FluentValidation:11.6.0MaterialDesignThemes:4.9.0Prism.DryIoc:8.1.97在WPF里验证表单使用的是INotifyDataErrorInfo接口,这个接口长这样publicinterfaceINotifyDataErrorInfo{boolHasErrors{get;......
  • C#+WPF上位机开发(模块化+反应式)
    在上位机开发领域中,C#与C++两种语言是应用最多的两种开发语言,在C++语言中,与之搭配的前端框架通常以QT最为常用,而C#语言中,与之搭配的前端框架是Winform和WPF两种框架。今天我们主要讨论一下C#和WPF这一对组合在上位机开发过程中的实际应用。一、模块化概念开发一套完善的软件,离不开......
  • udp接收上位机编程(2)彩色图像
    由于QT上位机只能接收BGR565的图像格式,且只能显示灰度或者RGB888,所以PL2PS的数据必须要变换位置,并使用cvtColor函数进行转换1voidMainWindow::recieve_dis(intudp_index)2{3Matrecv_img_2(img_h_size,img_w_size,CV_8UC2);4Matrecv_img_3(img_h_size,img_......
  • 2023-8-1 WPF的ItemsControl容器(DataGrid,ListBox,ListView等)可以实现的隔行样式修改
    实现的隔行样式修改【作者】长生微软官方文档详细介绍实现方式如果需要让你的wpf表格或者间隔样式实现下列效果可以使用AlternationCount首先添加一个DataGrid,并使用AlternatingRowBackground设置奇数行的背景色为紫色<DataGridAlternatingRowBackground="Purple"></Data......
  • WPF安装打包程序
    转载于:https://blog.csdn.net/Reborn214/article/details/127671649WPF程序打包1.在VisualStudio扩展中下载并安装MicrosoftVisualStudioInstallerProjects2022 2.以Release模式运行项目3.在解决方案中新建Setup项目 4.将项目工程Debug或者Release......