1

我有一个 ItemsControl,它的 ItemsSource 是一个 ObservableCollection。我还有一个 DataTemplate 来显示每个 MyPerson。

<ItemsControl Name="ic_People" ItemTemplate="{StaticResource dtPerson}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>

DataTemplate 本身有点复杂,但其中一部分是 Image。

在代码隐藏中,我想通过移动图像(使用 Canvas.Top 等)为部分/所有这些 DataTemplate 设置动画。

我的代码隐藏在这里卡住了;

Storyboard sb = new Storyboard();
DoubleAnimation da = new DoubleAnimation();
da.From = 0;
da.By = 68;
da.Duration = new Duration(TimeSpan.FromSeconds(.2));
sb.Children.Add(da);
object prop = Canvas.TopProperty;
Storyboard.SetTargetProperty(da, new PropertyPath(prop));
sb.Begin(???, true); <---- needs a FrameworkElement

我可以访问 ObservableCollection。如何访问 DataTemplate 或 Person 作为 FrameworkElement(这是 Begin 方法所需要的)?谢谢

4

0 回答 0