如何:禁用(并重新启用)ToggleButton事件触发器(故事板-双重动画)

时间:2018-09-07 10:59:08

标签: wpf vb.net wpf-style

我有一个ToggleButton,当单击该按钮时,它会滑出,以便用户可以验证/编辑已复制(剪贴板)的URL(按钮中的文本框)。然后再次单击ToggleButton,这将启动各种URL检查,并滑回其原始开始位置。这很完美。 (下面的代码)。

我现在想做的就是禁用此触发器。我希望该按钮不“滑出”,因为在下次单击时它将下载。因此,我试图找到一种禁用触发器的方法。文件全部下载完毕后,我将重新启用触发器,使其恢复为最初的状态。

切换按钮样式开始如下(在我的Application.xaml中:

<Style x:Key="ToggleButtonURL" TargetType="{x:Type ToggleButton}">

它设置各种颜色/字体属性和感兴趣的触发器:

                <Style.Triggers>
            <EventTrigger RoutedEvent="Checked">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation From="-554" To="0" Duration="0:0:0.2" Storyboard.TargetProperty="(Canvas.Left)" AutoReverse="False" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
            <EventTrigger RoutedEvent="Unchecked">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation From="0" To="-554" Duration="0:0:0.150" Storyboard.TargetProperty="(Canvas.Left)" AutoReverse="False" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Style.Triggers>

我只是想找到一种从代码启用/禁用此触发器的方法。谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

仅在不希望动画运行的情况下,才尝试将事件参数的e.Handled = true设置。如果那仍然使您快进快退,那么请使用PreviewEvent而不是直接事件。