Календарь WPF Toolkit занимает два клика, чтобы получить фокус - PullRequest
29 голосов
/ 11 марта 2010

Я использую календарь WPF, который является частью WPF Toolkit.

У меня есть два разных календаря на контроле. Когда я пытаюсь выбрать дату из одного календаря, а затем из второго календаря, мне нужно дважды щелкнуть по второму календарю, чтобы он выбрал дату.

Кто-нибудь еще имел эту проблему и знает решение?

Ответы [ 2 ]

35 голосов
/ 16 июля 2010

Календарь может захватывать мышь без изменения даты (например, в режиме перехода в CalendarMode). Лучшее решение это:

protected override void OnPreviewMouseUp(MouseButtonEventArgs e)
{
    base.OnPreviewMouseUp(e);
    if (Mouse.Captured is CalendarItem)
    {
        Mouse.Capture(null);
    }
}
4 голосов
/ 22 марта 2010

Я добавил этот код при изменении SelectedDates календаря, и это исправило проблему.

        Private Sub Calendar_SelectedDatesChanged(ByVal sender As Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs) Handles Me.SelectedDatesChanged
        Me.DisplayDate = CType(Me.SelectedDate, DateTime)

        ' This is to prevent the Calendar DayButtons from holding the focus in the Calendar.
        Me.CaptureMouse()
        Me.ReleaseMouseCapture()
    End Sub
...