返回首页

我在WPF中的新手,请指导我这个问题,在正确的方向。

我已经建立了一个WPF应用程序,它包含了所有的道路地图视图控制功能。即路线图可放大/输出,在所有使用鼠标,键盘和控制提供方向平移。我已经映射路径绘制使用Expression Blend的道路。

目前,我正在寻找一种方式,动画选定的道路,仿佛它是由一支铅笔/钢笔/标记绘制。这可能吗?到目前为止,我已经能够以动画路径的透明度和颜色。我搜索这个功能很多,没有运气。可我不寻找正确的术语。我希望你这样的人能摆脱此事的一些情况。

感谢在前进。对不起,如果我听起来疯狂{S0}编程是我的疯狂{S}方式

回答

评论会员:游客 时间:2012/02/07
PasanRatnayake:谢谢你的答案{S0}其实我是一个XAML解决方案的工作现在。我宁愿不回去旧的Windows应用程序的开发方法。我喜欢新的编程模型,我想开发一个解决方案,利用现有的资源已经或编写复杂的逻辑。我的研究强烈,这是没有现有的解决方案。让我的工作就可以了,如果我成功了,它会是值得张贴和共享,这是我一定会。再次感谢您
SAKryukov
评论会员:游客 时间:2012/02/07
有不同层次的动画。我有一种感觉,你大多用尽"默认"的动画在WPF和可通过XAML,这就是为什么你面对问题的方法表达能力的嵌入式功能的可能性。也许你的动画需要更多的灵活性,它是更复杂的故事情节与动画组合特征集等如果是这样,你需要加强水平和设计水平低的动画,这将使几乎任何议案。首先,创建一个动画的数学模型,数据模型的形式表达。这可能是模型的"物理"的场景或别的东西mdash;你把它命名为。下一步,开发使用元素放置在画布上,画布上的静态图片渲染你的场景。换句话说,所有对象的位置和转换,取决于你的数据模型。下一步:做一个"渲染程序"。所有对象数据模型更新时,应搬迁/转换到新的数据。这是关键:所有元素之间的关系,可以作为复杂的,因为你需要。使它成为一个单一参数的方法,让我们称之为"第三步"。下一步:添加到这张照片的时间。你可以使用一个定时器或一个单独的线程。我建议使用一个线程,这是更容易实现,这是更可靠的。首先,你需要修改你的数据模型,根据时间。这里是一个非常重要的事情:与线程,您将需要使用System.Threading.Thread.Sleep(frameDuration)。不要计算上frameDuration基于时间!实际线程计时器会有点随机。相反,你需要使用"真正"的时间。如果System.DateTime.Now或更好的使用更准确的System.Diagnostics.Stopwatchimgsrc=http://www.orcode.com/img/ico/smiley_smile.gif]。我没有尝试还比较性能,但是,因为你需要尽可能快地使这次的方法,我怀疑秒表也将更快地执行。请自己做一些实验/测试和时机挑最好的方法。从上面的步骤,你会得到一些"动画",根据实时数据模型,但真正的点可能是不准确等距,这将工作很细,你会看到它的线程。更重要的是什么,你需要有适当的平均帧每秒(用它自己的实验)和模型根据车架号码,但时间上的"真实"。前款如果叶的最后一步:如何使现场更新。你不能调用任何有关从非UI线程到UI。相反,你需要使用该方法的System.Windows.Threading.DispatcherInvoke或BeginInvoke。在这种情况下,你需要调用你的方法我上面描述的步骤。在我过去的答案,你会发现它是如何工作的详细解释和代码样本:{A},imgsrc=http://www.orcode.com/img/ico/smiley_smile.gif]见多线程也引用:{A3的}{A4}mdash;SA