2009-12-11 28 views
0

我有三個xaml文件+他們的代碼在我的Silverlight(C#)web項目中的文件後面。在鼠標事件中添加一個基於xaml的usercontrol到另一個鼠標事件

一個是MainPage.xaml,它是在瀏覽器中呈現的內容。

另外兩個(讓我們稱它們爲Dot和Box)是自定義用戶控件。

當網頁加載時,Dots會被添加到MainPage xml的子畫布中的隨機位置。

當用戶將鼠標懸停在Dot上時,我想添加一個Box到Dot的位置。這裏是我的背後點代碼:

public partial class Dot : UserControl 

{ 公共字符串grbId {獲得;設置;}

public Dot() { //需要初始化變量 InitializeComponent(); }

private void UserControl_MouseEnter(object sender, MouseEventArgs e) 
    { 
     // 
     //HtmlPage.Window.Alert(grbId); 

     MainPage mp = new MainPage(); 
     Box idWindow = new Box(); 
     idWindow.textBlock.Text = grbId; 

     // I added the following two lines because I thought it was being 
     // rendered behind Skymap but that is not the case. 
     Canvas.SetZIndex(idWindow, 5); 
     Canvas.SetZIndex(mp.SkyMap, -1); 

     idWindow.IsEnabled = true; 

     // Grow is animation storyboard 
     idWindow.Grow.Begin(); 

     // SkyMap is a canvas inside my LayoutRoot canvas in MainPage. 
     mp.SkyMap.Children.Add(idWindow);    
    } 

}

MouseEnter事件觸發正確和HtmlPage警報工作得很好。但Box永遠不會被繪製。我已經將相同的代碼添加到MainPage OnLoad事件,它工作正常。有人能告訴我我錯過了什麼嗎?我希望你能提供任何幫助。

請讓我知道我是否遺漏了重要信息來解決問題。謝謝!

回答