在循环的每个循环中重绘为silverlight画布。可能吗?

时间:2011-06-17 12:53:05

标签: c# silverlight canvas draw

任何帮助或指示都会受到大力赞赏。

基本上我试图移动或在“转弯”时将一些椭圆重绘为画布。

目前我可以点击一个按钮将椭圆渲染到画布中的新位置。每当我尝试不止一次这样做时,例如,每个循环将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--;
        }
    }

1 个答案:

答案 0 :(得分:1)

您可以使用CompositionTarget它可以帮助您 看this example
another good example

像这样使用它:

private void Update(object sender, EventArgs e)
{
     //Your code here
}

并挂钩渲染事件CompositionTarget.Rendering += Update;

编辑:如果您使用的是Canvas,最好使用Canvas.Left和Canvas.Top附加属性