1

私のWPFアプリケーションには、カスタムクラスFrostのスタイルを含む標準のGeneric.xamlファイルがあります。

アニメーションの1つの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

You could create a custom animation and add an eventhandler to it or use a command as dependency property. For a codeproject example of a custom animation look at this link.

于 2009-11-06T11:58:18.253 に答える