如何启动一个连接到数据模板中的控件的故事板
本文关键字:数据 的故事 控件 一个 何启动 启动 连接 | 更新日期: 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中,这样您就可以更容易地访问所有命名元素。