【C#】【WPF】カレンダーのフォーカスが失われないことへの対応

PR

問題の内容

カレンダーで日付を選択後に、ボタン等を1度クリックしても反応が無い。
ボタン等を2度クリックすると、ちゃんとクリックされる。

PR

原因

カレンダーのバグの様子。

PR

対応方法

下記のコードを追記すると解決する。
※メソッド「OnPreviewMouseUp」をオーバーライドする。

protected override void OnPreviewMouseUp(MouseButtonEventArgs e)
{
  base.OnPreviewMouseUp(e);
  if (Mouse.Captured is Calendar || Mouse.Captured is System.Windows.Controls.Primitives.CalendarItem)
  {
    Mouse.Capture(null);
  }
}
タイトルとURLをコピーしました