属性触发器

Posted 正在编译

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了属性触发器相关的知识,希望对你有一定的参考价值。

 4. 属性触发器

    使用触发器,可以动态修改控件的外观和操作方式,因为一些事件或属性值改变了。例如用户在按钮上移动鼠标,按钮就会改变其外观。通常,这必须在C#代码中实现,但使用WPF也可以用XAML实现,而这只会影响UI。

    下面首先介绍属性触发器

 <Style x:Key="TextBoxStyle" TargetType="{x:Type TextBox}">
        <Setter Property="Background" Value="LightBlue"/>
        <Setter Property="FontSize" Value="17"/>
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Background">
                        <Setter.Value>
                            <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                <GradientStop Offset="0" Color="LightBlue"/>
                                <GradientStop Offset="0.4" Color="Cyan"/>
                                <GradientStop Offset="0.8" Color="LightCyan"/>
                            </LinearGradientBrush>
                        </Setter.Value>
                    </Setter>
                    <Setter Property="FontSize" Value="22"/>
            </Trigger>
            <Trigger Property="IsKeyboardFocused" Value="True">
                <Setter Property="Background" Value="Yellow"/>
                <Setter Property="FontSize" Value="22"/>
            </Trigger>
        </Style.Triggers>
    </Style>
    </Window.Resources>
    <Canvas>
        <TextBox Canvas.Top="80" Canvas.Left="30" Width="200" Style="{StaticResource TextBoxStyle}"/>
        <TextBox Canvas.Top="120" Canvas.Left="30" Width="200" Style="{StaticResource TextBoxStyle}"/>
    </Canvas>

  Style类中有一个Triggers属性,通过它可以指定属性触发器.

  在触发器的属性中赋予IsMouseOver Value设置True时触发Setter设置的属性内容

  将鼠标放置在TextBox上,呈现如下图.

  

以上是关于属性触发器的主要内容,如果未能解决你的问题,请参考以下文章

WPF 精修篇 多属性触发器

WPF 精修篇 属性触发器

WPF 按钮属性触发器的问题

WPF中XAML的触发器的属性,事件 都有那些?以及如何寻找

WPF中XAML的触发器的属性,事件 都有那些?以及如何寻找

Zara带你快速入门WPF---触发器篇