微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决用于 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 举报,一经查实,本站将立刻删除。