如何确定WPF日历控件中鼠标的停留日期?

时间:2019-05-22 19:53:41

标签: c# wpf calendar

我的WPF应用程序中有一个Calendar控件。我想根据用户将鼠标悬停在哪个日期显示一条消息。

我认为Calendar控件为每个日期使用一个按钮,并且该按钮的DataContext设置为DateTime对象。

但是如何使用日历的MouseMove事件查看鼠标当前停留在哪个日期?

1 个答案:

答案 0 :(得分:2)

您可以使用Mouse.DirectlyOver将元素直接放在鼠标下,然后通过以下方式查找日期:

calendar.MouseMove += (s, e) =>
{
    if (Mouse.DirectlyOver is FrameworkElement el && 
        el.TemplatedParent is CalendarDayButton button && 
        el.DataContext is DateTime date)
    {
        // do stuff with `date`...
    }
};