1

在我的 WPF 应用程序中,我有标准的 Generic.xaml 文件,其中包含我的自定义类Frost的样式。

我需要找到一种方法将其中一个动画的 Completed 事件连接到我的自定义Frost类,我无法在运行时执行此操作,因为它向我抱怨我需要将 IsFrozen 设置为 false 我不想这样做(因为性能)。

如何将事件连接到控件模板的 TargetType?

    <Style TargetType="{x:Type Controls:Frost}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Controls:Frost}">
                    <ControlTemplate.Resources>
                        <Storyboard x:Key="OnEndFrost">
                            <DoubleAnimation Name="fadeOutFrostAnimation"
                                             BeginTime="00:00:00" 
                                             Duration="00:00:02"
                                             Storyboard.TargetName="frostElement" 
                                             Storyboard.TargetProperty="(UIElement.Opacity)"
                                             To="0">
                            </DoubleAnimation>
                        </Storyboard>
                    </ControlTemplate.Resources>
                    <Grid>
                        <MediaElement x:Name="frostElement" 
                                     LoadedBehavior="Manual"
                                     Width="1172" 
                                     Height="286.917" 
                                     Source="{TemplateBinding SourceUri}"
                                     ScrubbingEnabled="True">
                            <MediaElement.Effect>
                                <eff:ChromaKeyAlphaEffect InputColor="#FF0E425E" Tolerance="0.1" />
                            </MediaElement.Effect>
                        </MediaElement>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <EventTrigger RoutedEvent="Controls:Frost.EndFrost">
                            <BeginStoryboard x:Name="OnEndFrost_BeginStoryboard" Storyboard="{StaticResource OnEndFrost}"/>
                        </EventTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
4

1 回答 1

0

您可以创建自定义动画并向其添加事件处理程序或使用命令作为依赖项属性。有关自定义动画的代码项目示例,请查看此链接

于 2009-11-06T11:58:18.253 回答