Silverlight中所有控件的一个常见事件

Silverlight中所有控件的一个常见事件,silverlight,Silverlight,我有几个textblock控件,它们都在调用单个事件。但我必须用个人电脑把它们都连接起来 TextBlock1.MouseMove += new MouseEventHandler(TextBlock_MouseMove); TextBlock2.MouseMove += new MouseEventHandler(TextBlock_MouseMove); TextBlock3.MouseMove += new MouseEventHandler(TextBlock_MouseM

我有几个textblock控件,它们都在调用单个事件。但我必须用个人电脑把它们都连接起来

TextBlock1.MouseMove += new MouseEventHandler(TextBlock_MouseMove);    
TextBlock2.MouseMove += new MouseEventHandler(TextBlock_MouseMove);   
TextBlock3.MouseMove += new MouseEventHandler(TextBlock_MouseMove); 

是否有一种方法可以将鼠标移动应用于所有TextBlock,而无需逐个连接它们

您可以循环遍历表单的所有子控件,并将事件处理程序添加到找到的每个TextBlock中。如果这些文本块在同一个网格中,那么代码应该如下所示:

foreach(TextBlock vControl in GridName.Children)
{
    vControl.MouseMove += new MouseEventHandler(TextBlock_MouseMove);
}

现在我可能把它的“foreach”部分搞错了。它可能需要从对象强制转换,具体取决于它们在子集合中的存储方式。虽然如果最终有很多文本框,这将是一件好事,但您也可以设置文本框的样式,以便在鼠标移动时发出命令,但这需要一堆代码,以便更轻松地执行此操作。

您可以循环表单的所有子控件,并将事件处理程序添加到找到的每个文本块中。如果这些文本块在同一个网格中,那么代码应该如下所示:

foreach(TextBlock vControl in GridName.Children)
{
    vControl.MouseMove += new MouseEventHandler(TextBlock_MouseMove);
}

现在我可能把它的“foreach”部分搞错了。它可能需要从对象强制转换,具体取决于它们在子集合中的存储方式。虽然如果最终有很多文本框,这将是一件好事,但您也可以设置文本框的样式,以便在鼠标移动时发出命令,但这需要预先编写一堆代码,以便更轻松地进行操作。

此问题有许多变体,您的问题无法消除歧义。可视化树中是否存在其他您不希望触发事件的文本块(包括可能是其他控件模板一部分的文本块)?这些文本块是否有共同的父级?这真的是一对吗?如果是的话,为什么这是一个问题呢?这个问题有很多变体,你的问题并没有消除歧义。可视化树中是否存在其他您不希望触发事件的文本块(包括可能是其他控件模板一部分的文本块)?这些文本块是否有共同的父级?如果是,这真的是一对吗?为什么这是一个问题?此代码假定所有感兴趣的TextBlock都是特定面板的直接子级,并且面板中的所有TextBlock都是感兴趣的。此代码假定所有感兴趣的TextBlock都是特定面板的直接子级,并且面板中的所有TextBlock都是感兴趣的。