2012-02-09 35 views
1

我正在试图制作一个应用程序,允许用户在画布上绘制形状。一旦绘制完成,我希望用户能够以任何方式选择,移动,调整大小,基本上操纵形状。画布 - 动态绘图和管理形状

我在XNA中做了类似的事情,这很容易,因为有一个绘制循环。在我看来,在Silverlight中没有这样的东西,我无法弄清楚如何管理画布上的对象。如何管理画布'children collection以确保用户界面对用户所做的适当响应的最佳方式是什么?

大多数例子都非常基本,不会去任何附近的这种事情。如果以前做过这件事的人能告诉我他们是如何处理这个问题的,我将不胜感激。

回答

0

想了一会儿,我想我想清楚它是如何工作的。

画布有一个绘制循环,它是它所在的顶层父容器的绘制循环。 与XNA的不同之处我猜想,画布上绘制的项目集合不需要明确绘制,因为画布需要自动绘制其子项。

所以,我需要的是一种方法来坚持我添加到画布上的任何对象'孩子......然后我可以更新对象画图属性,并且更改将在画布下次刷新时反映出来。

我猜想某种存储我放入列表中的项目的字典可能是最好的...?

尚未完成答案,但我想现在我明白了一半。

+1

您可能从以下系列文章中受益:http://cgeers.com/2010/04/18/silverlight-asteroids-part-1-game-loop/。作者所做的第一件事就是设置一个带有渲染循环和精灵列表的画布等。 – 2012-02-09 13:23:59

+0

这非常有趣。谢谢! – 2012-02-09 13:56:42