【问题标题】:AppBar button-Click event is raised before the LostFocus event of the TextBox in UWP在 UWP 中 TextBox 的 LostFocus 事件之前引发 AppBar 按钮单击事件
【发布时间】:2020-03-04 08:29:59
【问题描述】:

我有一个具有 LostFocus 事件的文本框、一个具有 Click 事件的按钮和一个具有单击事件的 appbarButton。 每当我单击非应用栏按钮时,如果焦点在文本框中,它总是在单击事件之前调用 Lostfocus 事件。但。当我通过单击应用栏按钮执行相同操作时,它永远不会允许 Lostfocus 在其单击事件之前运行。 我尝试将 LostFocus 作为异步方法,但没有按我想要的方式工作。 谁能帮我解决一下?

【问题讨论】:

    标签: c# xaml uwp


    【解决方案1】:

    设置AppBar按钮的AllowFocusOnInteraction = true。如果在单击 AppBar 按钮之前任何字段失去焦点,这将首先触发 LostFocus 事件。

    【讨论】:

      【解决方案2】:

      在不影响其他控件焦点的情况下点击AppBarButton是一种设计。

      如果你想在TextBox.LostFocus做一些处理,你可以这样做:

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

      手动设置焦点到AppBarButton后,TextBox会失去焦点,你的任务会正常继续。

      【讨论】:

      • 谢谢,但我使用 AllowFocusOnInteraction = true 作为按钮属性来完成这项工作。
      • 很高兴您找到了解决方案,这很棒。你可以标记你的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      • 1970-01-01
      • 2014-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多