xaml – 在Bing Maps上为Metro应用程序设置标记引脚的动画
我有一个Bing Map控件,我想动画地图上绘制的一个图钉的位置.
理想情况下,我想写这样的代码: // Image myPin = some Image on the map layer; var sb = new Storyboard(); var duration = DurationHelper.FromTimeSpan(System.TimeSpan.FromMilliseconds(1000)); sb.Duration = duration; LocationAnimation ani = new LocationAnimation(); ani.To = new Location(33.3,11.1); // destination lat,lng ani.Duration = duration; sb.Children.Add(ani); Storyboard.SetTarget(ani,myPin); Storyboard.SetTargetProperty(ani,"MapLayer.Position"); Resources.Add("moveMyPin",sb); sb.Begin(); 当然框架中没有LocationAnimation类.有几个类似的:PointAnimation使用Point类型,而DoubleAnimation使用单个double值. 我假设我必须实现我的时间轴派生类,但到目前为止我找到的文档在这方面没有帮助,我不知道从哪里开始. 如何为没有* Animation类准备好的属性设置动画?我错过了什么吗? 更新:我想我可以做点什么 // let aniX and aniY be two DoubleAnimation objects StoryBoard.SetTargetProperty(aniX,"(MapLayer.Position).Latitude") StoryBoard.SetTargetProperty(aniY,"(MapLayer.Position).Longitude") 但现在我有另一个问题,因为我没有看到如何动画附加属性,并总是得到一个例外,如“无法解析指定对象上的TargetProperty(MapLayer.Position).Latitude”. 所以我想现在的问题是:如何为附加属性指定属性路径? 进一步更新:我可能在“SetTargetProperty”事情上处于错误的领先地位,因为这将产生一个依赖动画(参见评论中的链接).有没有更好的方法将标记引脚设置为坐标目标? 更新3:正如Jared指出的那样,我可以尝试为RenderTransform设置动画,或者使用转换来实现我的结果.我已经走了这条路,似乎不是我的解决方案.这是我发现的: >使用RepositionThemeAnimation,似乎我必须给出引脚的新像素位置.这有几个原因是有问题的:首先,我知道引脚的lat / lng目的地,但是必须计算出投影(据我所知,没有用于投影的公共接口).其次,投影本身可以随着地图缩放/平移而改变.动画结束时的像素目的地不能与初始像素目的地相同.在我的场景中,这是一个主要问题,因为在动画发生时,地图很可能正在移动. 解决方法
附加属性可以设置动画,但必须将其名称括在括号中.在这里查看示例:
http://www.charlespetzold.com/blog/2007/09/080231.html 但是,我认为这仅适用于设置整个值(位置),可能不适用于子属性(纬度和经度). 我想知道你是否可以提供更多关于你要做什么的信息.这是一个临时动画吗?也就是说你想要引脚在入口或出发时动画?如果是这样,你可以在RenderTransform X和Y上做一个动画.您实际上不会更改引脚的位置,但您可以使用RenderTransform临时更改其绘制位置. 更好的是,您可能能够摆脱现在构建到框架中的免费动画.你甚至不需要故事板来使用它们,你只需将它们设置在元素上就像这样: <Button Content="Transitioning Button"> <Button.Transitions> <TransitionCollection> <EntranceThemeTransition/> </TransitionCollection> </Button.Transitions> </Button> 有关动画库的更多示例以及许多动画的视频预览,请参阅: http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh452703.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-server-2012 – 证书不匹配RDS会话主机
- windows – 使用Powershell在Active Directory中更新Active
- iis – 防火墙阻止Windows 2008 R2上的FTP服务器
- windows-server-2008 – 所有DC失败VerifyEnterpriseRefere
- 脚本 – 是否有办法编写软件中心中列出的System Center Con
- 在windows xp中安装gitorious
- Windows10下virtualenv配置
- windows-runtime – 在Windows Phone 8.1 Universal应用程序
- Microsoft Visual C#2008减少加载dll的数量
- windows-server-2008 – NAT上的域控制器