テキスト ボックスを持つ Silverlight に Page があります。テキスト ボックスで GotFocus イベントを処理する必要がありますが、問題は、この特定のイベントがすべてのオブジェクト グラフに広がることです。そのため、他のオブジェクトが GotFocus イベントをスローすると、テキスト ボックスの GotFocusハンドラーも上げたい
質問する
84 次
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 に答える