我有三個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事件,它工作正常。有人能告訴我我錯過了什麼嗎?我希望你能提供任何幫助。
請讓我知道我是否遺漏了重要信息來解決問題。謝謝!