如何启动一个连接到数据模板中的控件的故事板

本文关键字:数据 的故事 控件 一个 何启动 启动 连接 | 更新日期: 2023-09-27 17:51:08

我在数据模板中有一个故事板。我想只在特定条件下开始。在我的情况下,只要没有。时钟中的秒数是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时启动它,但我不能在后端访问故事板,因为控件在数据模板中。

谁能帮帮我.....我已经为这个问题绞尽脑汁很多天了!!

如何启动一个连接到数据模板中的控件的故事板

最简单的方法是将DataTemplate的整个内容移动到一个单独的UserControl中,这样您就可以更容易地访问所有命名元素。