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");
}
}
サンプル