我有一个ItemsControl,它的ItemsSource是一个ObservableCollection。我还有一个DataTemplate来显示每个MyPerson。
<ItemsControl Name="ic_People" ItemTemplate="{StaticResource dtPerson}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
DataTemplate本身有点复杂,但其中一部分是Image。
在代码隐藏中,我想通过移动Image(使用Canvas.Top等)为一些/所有这些DataTemplates设置动画。
我的代码隐藏在这里;
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方法需要的)? 感谢