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");
    }
}

 

サンプル

 

製品について

Ultimate UI for WPF