当点击控件时,MouseLeftButtonDown动画很晚才激活

本文关键字:动画 激活 MouseLeftButtonDown 控件 | 更新日期: 2023-09-27 17:52:35

你好,我的WPF项目有一个奇怪的问题。
我试图样式一些元素在我的UI,我也想实现动画,如点击动画或悬停动画。
除了MouseLeftButtonDown动画,其他动画的制作都没有问题。

在我的风格中,我实现了这样的动画(这个Style是为Label s):

<EventTrigger RoutedEvent="MouseLeftButtonDown">
    <EventTrigger.Actions>
        <BeginStoryboard>
            <Storyboard TargetProperty="(Foreground).(SolidColorBrush.Color)">
                <ColorAnimation To="#6A6A6A" Duration="0:0:0.04" />
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger.Actions>
</EventTrigger>

我的期望是,LabelForeground改变为#6A6A6A每当我按下鼠标左键。
事实上,它做了我所期望的,但动画并没有立即执行,而是在我按下鼠标左键1秒后执行(鼠标按下->等待1秒->颜色变化)。
我真的不知道为什么会这样。所有其他动画工作良好,并立即执行,因为他们应该除了这个。
我试图通过代码背后的事件改变Label的颜色,因为我认为我的XAML代码可能有错误,但结果是相同的延迟动画。

我该怎么做才能得到想要的结果?

当点击控件时,MouseLeftButtonDown动画很晚才激活

从这个非常简单的工作示例中可以看出,是您的代码中的某些内容导致了您的问题:

<TextBlock Text="Oh I don't know... just some text">
    <TextBlock.Style>
        <Style>
            <Setter Property="TextBlock.Foreground" Value="Green" />
        </Style>
    </TextBlock.Style>
    <TextBlock.Triggers>
        <EventTrigger RoutedEvent="MouseLeftButtonDown">
            <EventTrigger.Actions>
                <BeginStoryboard>
                    <Storyboard TargetProperty="(Foreground).(SolidColorBrush.Color)">
                        <ColorAnimation To="Red" Duration="0:0:0.5" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger.Actions>
        </EventTrigger>
    </TextBlock.Triggers>
</TextBlock>

没有人能告诉你你的问题是什么,因为你没有展示相关的代码…请不要认为这句话的意思是把你所有的代码添加到你的问题…这是而不是的意思。如果您需要进一步的帮助来解决这个问题,那么请仔细遵循堆栈溢出帮助中心的"如何创建最小、完整和可验证的示例"页面中给出的建议,以提供一个完整,但简洁,可工作的代码示例,仍然显示您的问题

当遵循这个简化建议时,十有八九我们都能找到问题的解决方案。