WPF触发器

本文介绍了WindowsPresentationFoundation(WPF)中的样式触发器,包括单个触发器(如鼠标悬停和焦点),多条件触发器以及数据触发器,它们用于根据依赖属性变化、数据值或事件执行相应的样式设置和元素响应。
摘要由CSDN通过智能技术生成

达到触发条件,执行预期的响应,可以是样式、数据变化、动画等

通过 Style.Triggers 集合连接到样式中

每个样式可以有任意多个触发器

Trigger:监测依赖属性变化

MultiTrigger:多条件触发器

DataTrigger:监测数据变化

MultiDataTrigger:多数据变化触发器

EventTrigger:事件触发器

  • Trigger
<Window.Resources>
    <Style x:Key="ButtonStyle" TargetType="Button">
        <Setter Property="Width" Value="100" />
        <Setter Property="Height" Value="35" />
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Foreground" Value="Red"/>
                <Setter Property="FontSize"  Value="14" />
            </Trigger>

            <Trigger Property="IsMouseOver" Value="False">
                <Setter Property="Foreground" Value="Blue"/>
                <Setter Property="FontSize" Value="12" />
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Resources>
<Grid>
    <Button Style="{StaticResource ButtonStyle}" Content="Button"/>
</Grid>

在这里插入图片描述

  • MultiTrigger
<Window.Resources>
    <Style x:Key="ButtonStyle" TargetType="Button">
        <Setter Property="Width" Value="100" />
        <Setter Property="Height" Value="35" />
        <Style.Triggers>
            <MultiTrigger>
                <MultiTrigger.Conditions>
                    <Condition Property="IsMouseOver" Value="True"/>
                    <Condition Property="IsFocused" Value="True"/>
                </MultiTrigger.Conditions>
                <MultiTrigger.Setters>
                    <Setter Property="Foreground" Value="Red"/>
                    <Setter Property="FontSize" Value="14"/>
                </MultiTrigger.Setters>
            </MultiTrigger>
        </Style.Triggers>
    </Style>
</Window.Resources>
<Grid>
    <UniformGrid>
        <Button Style="{StaticResource ButtonStyle}" Content="Button"/>
        <Button Style="{StaticResource ButtonStyle}" Content="Button"/>
    </UniformGrid>
</Grid>
  • DataTrigger
<Window.Resources>
    <Style x:Key="TextStyle" TargetType="TextBox">
        <Setter Property="Height" Value="35"/>
        <Setter Property="Width" Value="100" />
        <Style.Triggers>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=Self},Path=Text}" Value="123">
                <Setter Property="Background" Value="Pink"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</Window.Resources>
<Grid>
    <UniformGrid>
        <TextBox Style="{StaticResource TextStyle}"/>
    </UniformGrid>
</Grid>

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值