MouseDown上的WPF动画,并在MouseUp上进行更改

时间:2017-11-14 10:05:32

标签: wpf xaml

我想在用户点击时制作一些动画。 所以我设置了以下样式并将其设置在我的网格上 - 但MouseUp Animation不起作用。

<Style x:Key="AnimatedButton" TargetType="Grid">
    <Style.Triggers>
        <EventTrigger RoutedEvent="MouseDown">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation Duration="00:00:0.1" From="1.0" To="0.8" Storyboard.TargetProperty="Opacity" />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
        <EventTrigger RoutedEvent="PreviewMouseUp">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation Duration="00:00:0.1" From="0.8" To="1.0" Storyboard.TargetProperty="Opacity" />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Style.Triggers>
</Style>

1 个答案:

答案 0 :(得分:0)

那太难了! 样式化网格是UserControl的一部分。

现在,此UserControl正在MouseDown上捕获鼠标并在MouseUp上释放捕获。因此捕获的MouseUp将转到UserControl。但是风格被定义为底层网格。由于捕获,Grid永远不会获得MouseUp。

所以我将Style的TargetType更改为“UserControl”并将UserControl.Style设置为this而不是样式化网格,所有这些都正常工作。