wpf Storyboard 不存在可解析名称“ ”的适用名称领域 No applicable name scope exists to resolve the name
原文:wpf Storyboard 不存在可解析名称“ ”的适用名称领域
No applicable name scope exists to resolve the name
写了一个 Storyboard ,如下:
DoubleAnimation crossLeftAnimation = new DoubleAnimation();crossLeftAnimation.Duration = TimeSpan.FromSeconds(0.5);Storyboard.SetTargetName(crossLeftAnimation, "imgCrossCartoon");Storyboard.SetTargetProperty(crossLeftAnimation,new PropertyPath(Canvas.LeftProperty));DoubleAnimation crossTopAnimation = new DoubleAnimation();crossTopAnimation.Duration = TimeSpan.FromSeconds(0.5);Storyboard.SetTargetName(crossTopAnimation, "imgCrossCartoon");Storyboard.SetTargetProperty(crossTopAnimation,new PropertyPath(Canvas.TopProperty));Storyboard myStoryboard=new Storyboard();myStoryboard.Completed+=new EventHandler(myStoryboard_Completed);this.imgCrossCartoon.IsEnabled= true;if (id > 0){crossLeftAnimation.From = Canvas.GetLeft(_calibrateCircles[id-1]);crossLeftAnimation.To = Canvas.GetLeft(_calibrateCircles[id]);crossTopAnimation.From = Canvas.GetTop(_calibrateCircles[id - 1]);crossTopAnimation.To = Canvas.GetTop(_calibrateCircles[id]);}else{crossLeftAnimation.From = -40;crossLeftAnimation.To = Canvas.GetLeft(_calibrateCircles[id]);crossTopAnimation.From = -40;crossTopAnimation.To = Canvas.GetTop(_calibrateCircles[id]);}myStoryboard.Children.Add(crossLeftAnimation);myStoryboard.Children.Add(crossTopAnimation); myStoryboard.Begin();
结果出现:Storyboard 不存在可解析名称“ ”的适用名称领域错误。后来参考http://social.msdn.microsoft.com/Forums/zh-TW/802/thread/1365449e-965d-4df7-82df-e3e0e8d0ca19,把最后一句改为:
myStoryboard.Begin(this.imgCrossCartoon);
就好了。
另外 如果非得用myStoryboard.Begin(),请在XAML Storyboard 下面的元素中添加 Storyboard.Target="{x:Reference Name=RootElement}" (这个比较有效) 或者 Storyboard.Target="{Binding ElementName=xxxxx}"
posted on 2018-09-21 09:40 NET未来之路 阅读(...) 评论(...) 编辑 收藏