不知道如何更好地解決問題,但基本上我有一個usercontrol,我動態添加到另一個用戶控件中。孩子的用戶控件有一組圖像,基本上我需要知道他們是否已經完全加載父級用戶控件,因爲我需要一個方法的尺寸(不僅僅是高度和寬度)。Silverlight用戶控件在另一個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物理到UserControl pg.currPuppet
。事物是物理引擎發現圖像的前半部分,然後不再發現(崩潰在相同的圖像)。如果我只是加載用戶控件,然後用按鈕單擊應用物理,它完美的工作。
嗯,我使用silverlight 3測試版,並有ImageOpened事件,但似乎在usercontrol完全加載之前觸發 – Drahcir 2009-04-29 23:24:04