WPF工具包日历需要两次单击才能获得焦点

时间:2010-03-11 14:56:50

标签: .net wpf calendar wpftoolkit

我正在使用作为WPF工具包一部分的WPF日历。

我在控件上有两个不同的日历。当我尝试从一个日历然后从第二个日历中选择日期时,我必须再次点击第二个日历以使其选择日期。

是否还有其他人遇到此问题且知道解决方案?

2 个答案:

答案 0 :(得分:35)

日历可以捕获鼠标而不更改日期(例如,在CalendarMode向下钻取)。 更好的解决方案是:

protected override void OnPreviewMouseUp(MouseButtonEventArgs e)
{
    base.OnPreviewMouseUp(e);
    if (Mouse.Captured is CalendarItem)
    {
        Mouse.Capture(null);
    }
}

答案 1 :(得分:4)

我在更改日历的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