在鼠标事件上添加一个基于xaml的usercontrol到另一个

时间:2009-12-11 19:05:54

标签: c# silverlight user-controls

我的Silverlight(C#)Web项目中有三个xaml文件+他们的代码隐藏文件。

一个是MainPage.xaml,它是在浏览器中呈现的内容。

另外两个(我们称之为Dot和Box)是自定义用户控件。

当网页加载时,Dots会被添加到MainPage xml的子画布中的随机位置。

当用户将鼠标放在Dot上时,我想将一个Box添加到Dot的位置。这是我的Dot代码:

public partial class Dot : UserControl

{         public string grbId {get;设置;}

公共点()   {    //初始化变量时需要    的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事件,它工作正常。有人可以告诉我我错过了什么吗?如果您能提供任何帮助,我将不胜感激。

如果我遗漏了解决问题的重要信息,请告诉我。谢谢!

1 个答案:

答案 0 :(得分:0)

在发布此问题之前,我已经搜索了我能想到的每个关键字组合。显然,它们不是搜索引擎想要的关键词。

我终于在这里找到了答案:http://forums.silverlight.net/forums/p/123126/278060.aspx