我在Silverlight上有一个有文本框的页面,我需要在文本框上处理GotFocus事件,但问题是这个特定事件在所有对象图上展开,所以当任何其他对象抛出一个GotFocus事件时我想要处理的文本框的GotFocus也是
答案 0 :(得分:1)
GotFocus是一个路由事件,这意味着它将在Visual Tree中向上运行,直到将其标记为已处理。
您正在描述事件类型所期望的内容。
如果事件继续“冒泡”,会产生一些不良副作用。您可以将事件标记为已处理以阻止它。
您还可以检查事件的OriginalSource属性,以查看事件是否来自TextBox。
void OnGotFocus(object sender, RoutedEventArgs e)
{
var myTextBox = e.OriginalSource as TextBox;
if(myTextBox != null && myTextBox.Name == "MyTextBoxName")
{
e.Handled = true;
}
}