属性触发器

 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上,呈现如下图.

  

原文地址:https://www.cnblogs.com/hdsong/p/5068267.html