我在 Xaml 中创建了一个数据透视表。枢轴有 4 个项目。
在每个枢轴上都有一个由以下代码创建的 Storyboard动画:
{
var myStoryBoard = new Storyboard();
myStoryBoard.RepeatBehavior = RepeatBehavior.Forever;
var animation = new ObjectAnimationUsingKeyFrames();
Storyboard.SetTarget(animation, myAnim1);
Storyboard.SetTargetProperty(animation, new PropertyPath("Source"));
myStoryBoard.Children.Add(animation);
// try to catch my images autmatically
for (int i = 1; i <= 12; i++)
{
var keyframe = new DiscreteObjectKeyFrame
{
KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(750 * i)),
Value = String.Format("/Images/img_{0:D2}.jpg", i)
};
animation.KeyFrames.Add(keyframe);
}
Resources.Add("myAnimation", storyboard); }
如何将 Storyboard的开始设置为仅在选择数据透视项时开始,而所有其他 Storyboard均未播放?
我尝试用 Pivot_SelectionChanged();
设置它,但没有成功。
最佳答案
我认为您必须在页面的加载方法中创建所有 Storyboard,然后显示或隐藏 Storyboard。
public MainPage() { // Create storyboard1 // create storyboard2 ... }
然后使用 Pivot_SelectionChanged 方法显示或隐藏 Storyboard
private void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e) { switch (((Pivot)sender).SelectedIndex) { case 0: storyboard1.Begin(); storyboard2.Stop(); break; case 1: storyboard2.Begin(); storyboard1.Stop(); break; } }
关于c# - 枢轴应用程序 (WP7) 中的动画控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6799002/