Silverlight Usercontrol Onload事件在另一个Usercontrol中生成时,用于应用farseer物理

时间:2009-04-29 23:01:48

标签: silverlight farseer

不知道如何更好地表达问题,但基本上我有一个usercontrol,我动态添加到另一个usercontrol。子用户控件有一组图像,基本上我需要知道它们是否已完全加载到父用户控件中,因为我需要它们的方法(不仅仅是高度和宽度)。

是否有一种事件可以在子用户控件中的所有图像都加载到父对象时触发?

为了进一步解释我的场景,我需要这个,因为我使用了用于silverlight的farseer物理引擎,并且它获取了用于碰撞检测的图像的形状,并且因为当我尝试将图像转换为物理对象时它会找不到形状,因为图像仍然在屏幕上生成,因此会引发异常。

更新:这是我到目前为止所提出的

void currImg_ImageOpened(object sender, RoutedEventArgs e)
{

    var ImagesLoaded = true;
    for (int i = 0; i < ImageLoaded.Count-1; i++)
    {
        if (!ImageLoaded[i])
        {
            ImagesLoaded = false;
            ImageLoaded[i] = true;
            break;
        }
    }

    if (ImagesLoaded)
    {
        addPuppetPhysics(pg.currPuppet);
    }

}

其中ImageLoaded是布尔列表,方法addPuppetPhysics将farseer physics应用于usercontrol pg.currPuppet。事物是物理引擎发现图像的前半部分然后再找不到(在同一图像上崩溃)。如果我只是加载用户控件,然后通过单击按钮应用物理,它完美地工作。

1 个答案:

答案 0 :(得分:0)

你可以在儿童控制中检测到图像加载完成的时间吗?如果是这样,您可以创建自己的事件 - 例如:ImagesLoaded - 并在父母中处理它。