1

データ テンプレート内にストーリーボードがあります。特定の条件でのみ開始したい。私の場合はいつでもいいえ。クロックの秒数は 59 で、ストーリーボードを開始する必要があります。

以下に、ストーリーボードと、アニメーションが適用されるコントロールを示します。

<!-- Minute Hand -->
                <Image
                    Source="{Binding Time, Converter={StaticResource MinHandBackground}}"
                    HorizontalAlignment="Left"                        
                    VerticalAlignment="Top"                        
                    Canvas.Left="118"
                    Canvas.Top="118">
                    <Image.RenderTransform>
                        <TransformGroup>
                            <TranslateTransform
                                X="-11"
                                Y="-90" />

                            <RotateTransform
                                x:Name="minHandTransform" />


                        </TransformGroup>
                    </Image.RenderTransform>

                    <Image.Triggers>


                        <EventTrigger
                            RoutedEvent="Image.Loaded">
                            <BeginStoryboard>
                                <Storyboard
                                    x:Name="myStoryboard2">
                                    <DoubleAnimation
                                        x:Name="minuteAnimation"
                                        Storyboard.TargetName="minHandTransform"
                                        Storyboard.TargetProperty="Angle"
                                        Duration="0:0:1"
                                        From="{Binding Time, Converter={StaticResource minuteHandTransform}}"
                                        To="{Binding Time, Converter={StaticResource minuteHandToTransform}}"
                                        RepeatBehavior="1x">
                                        <DoubleAnimation.EasingFunction>
                                            <SineEase
                                                EasingMode="EaseOut" />
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>

                    </Image.Triggers>
                </Image>

現在、BeginStoryboard はロード時にすぐに開始します。秒数が59のときに開始したいのですが、コントロールがデータテンプレート内にあるため、バックエンドでストーリーボードにアクセスできません。

誰でもここで私を助けてくれませんか.....私はこの問題について何日も頭を悩ませてきました!!

4

1 に答える 1

1

最も簡単な方法は、DataTemplate のコンテンツ全体を別の UserControl に移動して、すべての名前付き要素に簡単にアクセスできるようにすることです。

于 2013-01-09T17:02:39.427 に答える