0

我在 silverlight 上有一个页面,它有一个文本框,我需要处理文本框上的 GotFocus 事件,但问题是这个特定事件分布在所有对象图上,所以当任何其他对象抛出 GotFocus 事件时,文本框的 GotFocus我也想处理程序

4

1 回答 1

1

GotFocus 是一个路由事件,这意味着它将沿着可视树向上工作,直到有东西将其标记为已处理。

您正在描述事件类型所期望的内容。

如果事件继续“冒泡”而产生一些不良副作用。您可以将事件标记为已处理以停止它。

您还可以检查事件的 OriginalSource 属性以查看该事件是否源自您的 TextBox。

void OnGotFocus(object sender, RoutedEventArgs e)
{ 
    var myTextBox = e.OriginalSource as TextBox;
    if(myTextBox != null && myTextBox.Name == "MyTextBoxName")
    {
        e.Handled = true;
    }
}
于 2013-01-30T18:54:13.073 回答