用于 Storyboard 的 WPF eventtrigger 在代码隐藏但不是点击时出错

问题描述

当我在自定义按钮中引发事件时,出现此错误

RoutedEventArgs args = new RoutedEventArgs(ContainorSelector.ClickEvent);
fullTopLeftButtonTopButtonMain.RaiseEvent(args);

system.invalidOperationException: '找不到名称'ContainorSelectorStyleControlTemplateBorderDropShadowEffect'在'System.Windows.Controls.ControlTemplate'的名称范围内。'

错误是从法语翻译过来的。当我单击界面中的自定义按钮时,代码正在工作。

我应该如何从背后的代码触发故事板?

<StackPanel Margin="14" Name="fullMain" Visibility="Collapsed">
    <local:ContainorSelector Style="{StaticResource ContainorSelectorStyle}" Background="Transparent" Height="192" Width="336" RenderTransformOrigin="0.5 0.5" x:Name="fullTopLeftButtonTopButtonMain" Click="topLeftSelection">
    </local:ContainorSelector>
</StackPanel>

<Style x:Key="ContainorSelectorStyle" targettype="{x:Type views:ContainorSelector}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate targettype="{x:Type views:ContainorSelector}">
                <Border
                    x:Name="ContainorSelectorStyleControlTemplateBorder"
                    Width="{TemplateBinding Width}"
                    Height="{TemplateBinding Height}"
                    Background="{TemplateBinding Background}"
                    RenderTransformOrigin="0.5 0.5" BorderBrush="{StaticResource Brush_primaryBrush}" BorderThickness="2">
                    <Border.Effect>
                        <DropShadowEffect x:Name="ContainorSelectorStyleControlTemplateBorderDropShadowEffect" ShadowDepth="0" Color="White" Opacity="0" BlurRadius="0"/>
                    </Border.Effect>
                    <Border.RenderTransform>
                        <ScaleTransform x:Name="ContainorSelectorStyleControlTemplateBorderScaleTransform" ScaleX="1" ScaleY="1"/>
                    </Border.RenderTransform>
                </Border>
                <ControlTemplate.Triggers>
                    <EventTrigger RoutedEvent="Click">
                        <EventTrigger.Actions>
                            <BeginStoryboard Name="BeginStoryboard">
                                <Storyboard>
                                    <ColorAnimation
                                        To="White"
                                        From="#FF03004B"
                                        Storyboard.Target="{Binding Source={RelativeSource Mode=TemplatedParent},Path=Effect.DropShadowEffect}"
                                        Storyboard.TargetProperty="Effect.DropShadowEffect.Color"
                                        FillBehavior="Stop"
                                        Duration="0:0:2"
                                        AutoReverse="True"
                                        RepeatBehavior="Forever">
                                        <ColorAnimation.EasingFunction>
                                            <QuadraticEase></QuadraticEase>
                                        </ColorAnimation.EasingFunction>
                                    </ColorAnimation>
                                    <DoubleAnimation
                                        To="20"
                                        From="0"
                                        Storyboard.Target="{Binding Source={RelativeSource Mode=TemplatedParent},Path=Effect.DropShadowEffect}"
                                        Storyboard.TargetProperty="Effect.DropShadowEffect.BlurRadius"
                                        FillBehavior="Stop"
                                        Duration="0:0:2"
                                        AutoReverse="True"
                                        RepeatBehavior="Forever">
                                        <DoubleAnimation.EasingFunction>
                                            <QuadraticEase></QuadraticEase>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                    <DoubleAnimation
                                        To="1.0"
                                        From="1.0"
                                        Storyboard.Target="{Binding Source={RelativeSource Mode=TemplatedParent},Path=Effect.DropShadowEffect}"
                                        Storyboard.TargetProperty="Effect.DropShadowEffect.Opacity"
                                        FillBehavior="Stop"
                                        Duration="0:0:2"
                                        AutoReverse="True"
                                        RepeatBehavior="Forever">
                                        <DoubleAnimation.EasingFunction>
                                            <QuadraticEase></QuadraticEase>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                    <DoubleAnimation
                                        To="1.1"
                                        From="0.9"
                                        Storyboard.Target="{Binding Source={RelativeSource Mode=TemplatedParent},Path=RenderTransform.ScaleTransform}"
                                        Storyboard.TargetProperty="ScaleTransform.ScaleX"
                                        FillBehavior="Stop"
                                        Duration="0:0:2"
                                        AutoReverse="True"
                                        RepeatBehavior="Forever">
                                        <DoubleAnimation.EasingFunction>
                                            <QuadraticEase></QuadraticEase>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                    <DoubleAnimation
                                        To="1.1"
                                        From="0.9"
                                        Storyboard.Target="{Binding Source={RelativeSource Mode=TemplatedParent},Path=RenderTransform.ScaleTransform}"
                                        Storyboard.TargetProperty="ScaleTransform.ScaleY"
                                        FillBehavior="Stop"
                                        Duration="0:0:2"
                                        AutoReverse="True"
                                        RepeatBehavior="Forever">
                                        <DoubleAnimation.EasingFunction>
                                            <QuadraticEase></QuadraticEase>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger.Actions>
                    </EventTrigger>
                    <EventTrigger RoutedEvent="Deactivate">
                        <StopStoryboard BeginStoryboardName="BeginStoryboard"/>
                    </EventTrigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...