bugfix> c# > 投稿

私は、LostFocusイベント、Clickイベントを持つ1つのボタン、およびクリックイベントを持つappbarButtonを持つTextboxを持っています。 appbar以外のボタンをクリックするたびに、フォーカスがテキストボックスにある場合、クリックイベントの前に常にLostfocusイベントが呼び出されます。だが。 appbarボタンをクリックして同じことを行うと、クリックイベントの前にLostfocusを実行できません。 LostFocusを非同期メソッドとして作成しようとしましたが、希望どおりに機能していません。 誰かが解決策を手伝ってくれる?

回答 2 件
  • AppBarボタンのAllowFocusOnInteraction = trueを設定します。 AppBarボタンのクリックの前にフィールドがフォーカスを失った場合、これは最初にLostFocusイベントをトリガーします。

  • AppBarButton をクリック  他のコントロールのフォーカスに影響を与えることなく、デザインです。

    TextBox.LostFocus で処理したい場合 、 あなたはこれを行うことができます:

    private void AppBarButton_Click(object sender, RoutedEventArgs e)
    {
        (sender as AppBarButton).Focus(FocusState.Pointer);
        // do other things...
    }
    
    

    手動でフォーカスを AppBarButton に設定した後 、 TextBox  フォーカスが失われ、タスクは通常どおり続行されます。

あなたの答え