【发布时间】:2011-06-17 12:53:05
【问题描述】:
任何帮助或指点将不胜感激。
基本上,我试图在“转弯”时移动或重绘一些椭圆到画布上。
目前我可以单击一个按钮将椭圆渲染到画布中的新位置。每当我尝试多次执行此操作时,例如,每次循环将 TranslateTransform X 和 Y 值增加一个,整个应用程序就会挂起。这是 RenderTransform 的问题吗?帆布? MainPage 线程?代码看起来很可靠,所以它为什么不能多次移动椭圆是一个谜。
private void update()
{
int x = 0;
int y = 0;
while (turns <= 5)
{
TranslateTransform t = new TranslateTransform();
t.X = x + 1;
t.Y = y + 1;
// agent is a child element of a canvas.
agent.RenderTransform = t;
turns--;
}
}
【问题讨论】:
-
当我们看到相关的源代码时更容易发现问题。
-
你说得对,更新方法如下。
-
为什么不使用动画?
-
椭圆本质上是根据碰撞规则和寻路行动的代理,这对故事板不起作用,我只需要经常更新它们的位置。
-
不要低估简单“移动”任务的情节提要。您可以命名情节提要中的任何元素,以便以编程方式访问目标位置。这样,实际的可变帧速率动画将留给 Silverlight 引擎,而不是您。
标签: c# silverlight canvas draw