1

我正在构建一个包含多个按钮的 Windows WPF 应用程序。我想通知用户,如果用户单击其他地方并且没有加载 pdf,则他应该先加载 pdf,然后才能通过使加载 pdf 按钮闪烁/振动来按下其他按钮。

例如 - 如果您在打开编辑颜色框时尝试单击编辑颜色框之外的任何位置,则会在 Microsoft Paint 上发生确切的行为。(见附图)

有人有想法吗?

在此处输入图像描述

4

1 回答 1

3

您可以使用带有 a 的情节提要DoubleAnimation,更改投影,使其自动返回并重复(此处为 4 次)。

这是一个UserControl,您可以将其重用于具有这种效果的所有按钮;您只需将文本“按钮内容”替换为一些内容DependencyProperty即可使其具有通用性。

<UserControl x:Class="AnimateDropShadow"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      mc:Ignorable="d">
    <Grid>
        <Button HorizontalAlignment="Left" >
            Button content
            <Button.Effect>
                <DropShadowEffect x:Name="warningEffect" Color="Black" BlurRadius="10"  ShadowDepth="0"/>
            </Button.Effect>
            <Button.Triggers>
                <EventTrigger RoutedEvent="Button.Click">
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation
                                Storyboard.TargetName="warningEffect"
                                Storyboard.TargetProperty="BlurRadius"
                                From="15" To="10" Duration="0:0:0.1"
                                AutoReverse="True" RepeatBehavior="0:0:0.4" />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Button.Triggers>
        </Button>
    </Grid>
</UserControl>
于 2021-03-15T15:20:49.700 回答