如何编写WPF触发器以更改文本块悬停上的光标

时间:2013-05-16 10:29:19

标签: wpf xaml

我有一个文本块,当前有一个触发器,可以在鼠标进入时设置前景色,并在鼠标离开时返回默认值。我遇到的问题是我还想改变鼠标指针我目前有以下

    <Style TargetType="TextBlock" x:Key="FlatStyleButton">
        <Setter Property="Foreground" Value="White"/>
        <Setter Property="Background" Value="#FF333333" />
        <Style.Triggers>
            <EventTrigger RoutedEvent="UIElement.MouseEnter">
                <BeginStoryboard>
                    <Storyboard>
                        <ColorAnimation Duration="0:0:0.3" Storyboard.TargetProperty="Foreground.Color" To="CornflowerBlue" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
            <EventTrigger RoutedEvent="UIElement.MouseLeave">
                <BeginStoryboard>
                    <Storyboard>
                        <ColorAnimation Duration="0:0:0.3" Storyboard.TargetProperty="Foreground.Color" To="White" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Style.Triggers>
    </Style>

我尝试将<Setter Property="Cursor" Value="Hand"></Setter>添加到各个地方但似乎无法正常工作

1 个答案:

答案 0 :(得分:32)

对不起家伙正确的学校男孩错误我害怕,我尝试的东西会起作用,但我在错误的资源文件中修改。因此,如果有人对此感兴趣,答案是:

<Style TargetType="TextBlock" x:Key="FlatStyleButton">
        <Setter Property="Foreground" Value="White"/>
        <Setter Property="Background" Value="#FF333333" />
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Cursor" Value="Hand" />
            </Trigger>
            <EventTrigger RoutedEvent="UIElement.MouseEnter">
                <BeginStoryboard>
                    <Storyboard>
                        <ColorAnimation Duration="0:0:0.3" Storyboard.TargetProperty="Foreground.Color" To="CornflowerBlue" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
            <EventTrigger RoutedEvent="UIElement.MouseLeave">
                <BeginStoryboard>
                    <Storyboard>
                        <ColorAnimation Duration="0:0:0.3" Storyboard.TargetProperty="Foreground.Color" To="White" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Style.Triggers>
    </Style>