首页 > 其他分享 >WPF 触发器Trigger

WPF 触发器Trigger

时间:2023-08-24 11:34:31浏览次数:34  
标签:EventTrigger 触发 触发器 DataTrigger MultiTrigger Trigger WPF 属性

Trigger:当某些条件满足时会触发一个行为。

一、触发器的类型

  • 数据变化触发型:Trigger / DataTrigger
  • 多条件触发型:MultiTrigger / MultiDataTrigger
  • 事件触发型:EventTrigger

二、Trigger

Trigger:Property用来指明关注目标控件的哪个属性,Value则是触发条件。
Setter:一旦触发条件被满足,这组Setter的“属性-值”就会被应用,触发条件不再满足后,各属性值会被还原。

   <Style TargetType="CheckBox">
            <Style.Triggers>
                <Trigger Property="IsChecked" Value="true">
                    <Trigger.Setters><Setter Property="FontSize" Value="20"/>
                        <Setter Property="Foreground" Value="Orange"/>
                    </Trigger.Setters>
                </Trigger>
            </Style.Triggers>
    </Style>

三、MultiTrigger

MultiTrigger :必须多个条件同时成立才会被触发。
MultiTrigger比Trigger多了Condition属性,需要同时成立的条件都存储在这个集合中。

<Style TargetType="CheckBox">
    <Style.Triggers>
        <MultiTrigger>
            <MultiTrigger.Conditions>
                <Condition Property="IsChecked" Value="true"/>
                <Condition Property="Content" Value=“HelloWorld"/>
            </MultiTrigger.Conditions>
            <MultiTrigger.Setters>
                <Setter Property="FontSize" Value="20"/>
                <Setter Property="Foreground" Value="Orange"/>
            </MultiTrigger.Setters>
        </MultiTrigger>
    </Style.Triggers>
</Style>

四、DataTrigger

DataTrigger :基于数据执行某些判断情况。
利用Binding属性,若其值与Value属性一致,DataTrigger即被触发。

<Style TargetType="TextBox" x:Key="tbDataTrigger">
    <Style.Triggers>
        <DataTrigger Binding=“{Binding Path=Text, ElementName=testText }" Value=“HelloWord">
            <Setter Property="BorderBrush" Value="Red"/>
            <Setter Property="BorderThickness" Value="1"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

五、EventTrigger

EventTrigger :不是由属性值或数据的变化来触发,而是由事件来触发;
其次,被触发后它并非应用一组Setter,而是执行一段动画。故UI的动画效果往往与EventTrigger相关联。

<Style TargetType="Button" x:Key="btEventTrigger">
    <Style.Triggers>
        <!--鼠标进入-->
        <EventTrigger RoutedEvent="MouseEnter">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation To="150" Duration="0:0:0.2" Storyboard.TargetProperty="Width"/>
                    <DoubleAnimation To="150" Duration="0:0:0.2" Storyboard.TargetProperty="Height"/>
                            </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Style.Triggers>
</Style>

 

标签:EventTrigger,触发,触发器,DataTrigger,MultiTrigger,Trigger,WPF,属性
From: https://www.cnblogs.com/LXLR/p/17653745.html

相关文章

  • WPF输入框验证
    WPF使用ValidationRule进行数据绑定验证1.xaml代码如下:<Windowx:Class="WpfApp1.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"......
  • Oracle触发器
    --手办表DROPTABLET_GIRL;CREATETABLET_GIRL(IDNUMBER,NAMEVARCHAR2(30),PRIMARYKEY(ID),AGENUMBER,TCODENUMBER);--数量表DROPTABLET_SQL_LOG;CREATETABLET_SQL_LOG(TIDNUMBER,TNAMEVARCHAR2(30),TCODEVARCHAR(20),TCOUNTNUM......
  • DevExpress WPF HeatMap组件,一个高度可自定义的热图控件!
    像所有DevExpress UI组件一样,HeatMap组件针对速度进行了优化,包括数十个自定义设置和高级API,因此用户可以快速将美观的数据可视化集成到下一个WPF应用程序中。P.S:DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创......
  • WPF实现Element UI风格的日期时间选择器
    背景业务开发过程中遇到一个日期范围选择的需求,和ElementUI的DateTimePicker组件比较类似,由两个日历控件组成,联动选择起始时间和结束时间。问题WPF中提供了一个DatePicker的控件,主要由DatePickerTextBox、Button和一个Calendar组成,其中Calendar是后台代码动态添加的,因此不能直......
  • C# wpf 按钮 样式
    <ButtonWidth="312"Height="104"Click="Button_Click"><Button.Template><ControlTemplateTargetType="Button"><Grid>......
  • WPF绑定Enum到RadioButton
    将枚举型的数据类型绑定到单选按钮的IsChecked属性中,可以避免定义多个bool类型与之进行绑定,尤其是枚举类型较多时候,对bool对象的维护会更加复杂。1、定义枚举类型及值转换器internalenumGender{[Description("男")]Male,[Description("女")]Female,[Descri......
  • 【愚公系列】2023年08月 WPF控件专题 CheckBox控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • 8-20|https://gitlab.xx.com/api/v4/projects/4/trigger/pipeline Request failed 状
    当你使用GitLabAPI并收到状态码400,这通常意味着你发送的请求是“坏的”或格式不正确。以下是一些建议,帮助你解决问题:1.**验证请求正文**:确保你提供的请求正文(如果有的话)是正确的并符合API的预期格式。对于触发管道的API,你可能需要提供有关分支、变量等的信息。2.**检查URL*......
  • SQL Server触发器
    文章来源: SQLServer触发器-hoojo-博客园(cnblogs.com)--触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。--而存储过程可以通过存储过程的名称被调用。--触发器对表进行插入、更新、删除的时候会自......
  • 【愚公系列】2023年08月 WPF控件专题 Button控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......