XamNumericEditorでは、編集時に内部に別途エディタを生成致します。このため、XamNumericEditorと内部にあるエディタの間でフォーカスが移動するため、フォーカスが設定された際にLostFocusも発生します。
XamNumericEditorにフォーカスが設定された際にGotFocusイベントを、フォーカスが外れた際にLostFocusイベントをハンドルするためには、下記のように制御コードを加えてください。
private void xamNumericEditor1_GotFocus(object sender, RoutedEventArgs e) { // XamNumericEditorの内部エディタにフォーカスが当たった場合、Trueとする。 if (e.OriginalSource.GetType() != typeof(XamNumericEditor)) { System.Diagnostics.Debug.WriteLine("GotFocus"); } } private void xamNumericEditor1_LostFocus(object sender, RoutedEventArgs e) { // XamNumericEditorの内部エディタからフォーカスが外れた場合、Trueとする。 // また、Escapeキー押下の操作を考慮に入れる。 if (e.OriginalSource.GetType() != typeof(XamNumericEditor) && Keyboard.IsKeyDown(Key.Escape) == false || Keyboard.IsKeyDown(Key.Escape) ) { System.Diagnostics.Debug.WriteLine("LostFocus"); } }
サンプル