当前位置: 首页 > 编程语言 > C#

使用SetTarget方法定位多个对象的故事板不起作用分享

时间:2023-04-11 01:25:01 C#

C#学习教程:使用SetTarget方法定位多个对象的Storyboard不起作用Brush变量包含一个预先填充的画笔列表。如果我尝试在迭代期间直接应用BeginAnimation,它工作正常。但是单独启动每个动画有很多开销......所以我试图将所有动画放在一个故事板中,然后一次打开它们......varstoryBoard=newStoryboard();varduration=newDuration(TimeSpan.FromMilliseconds(time));foreach(Brushbrushinbrushes){varanimation=newDoubleAnimation(toValue,duration);storyBoard.Children.Add(动画);Storyboard.SetTargetProperty(animation,newPropertyPath(Brush.OpacityProperty));Storyboard.SetTarget(动画,画笔);故事板开始();这段代码什么都不做(据我所知……)。谢谢!!编辑:仍然不确定SetTarget方法有什么问题,要么是错误,要么我只是不应该使用它。无论如何,我使用SetTargetName方法解决了在运行时为画笔生成唯一名称的问题。再次感谢所有的建议。尝试使用Storyboard.SettargetName方法代替Storyboard.SetTarget。我有适合你的工作样本:varbrushes=newstring[]{"br1","br2","br3"};varsb=新故事板();vardur=newDuration(TimeSpan.FromMilliseconds(500.0));双toValue=1.0;foreach(varbrushinbrushes){varanim=newDoubleAnimation(toValue,dur);Storyboard.SetTargetName(anim,brush);Storyboard.SetTargetProperty(anim,newPropertyPath("(0)",newDependencyProperty[]{Brush.OpacityProperty}));sb.Children.Add(动画);}sb.Begin(this);请记住,在这种情况下,您还应该将Namescope设置为Storyboard.Begin方法的参数。另请参阅:Stackoverflow上的另一个答案。以上是C#学习教程:使用SetTarget方法在storyboard中定位多个对象不起作用。分享的所有内容,如果对大家有用,需要了解更多C#学习教程,希望大家多多关注——本文来自网络合集,不代表立场,如涉及侵权,敬请谅解点击右侧联系管理员删除。如需转载请注明出处: