评论会员:游客 时间: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