双击WPF日历控件

时间:2014-08-12 13:37:19

标签: wpf

我使用Calendar控件的双击事件来选择日期并处理我的逻辑。 问题是,即使更改月份,它也会获得双击。有一种方法可以将事件限制在天区域吗?

Calendar control

在上图中,我需要双击在黄色区域中工作,但它也适用于红色区域。

XAML:

<Calendar Name="CalendarControl" MouseDoubleClick="CalendarControl_OnMouseDoubleClick"/>

C#

Date = CalendarControl.SelectedDate;
//process my logic here...

实际上我这样解决了这个问题:

private void CalendarControl_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
        var p = e.GetPosition(CalendarControl);
        if ((p.X >= 14) && (p.X < 165) && (p.Y >= 52) && (p.Y < 150))
        {
            Date = CalendarControl.SelectedDate;
            //process my logic here...
        }

    }

但我正在寻找更好的解决方案。

2 个答案:

答案 0 :(得分:0)

您是否尝试过Calendar.DisplayDate财产?

这个应该有用:

Set display month in WPF Calendar control

希望它有所帮助!

答案 1 :(得分:0)

我有同样的问题,

我检测到日历上的双击事件以使用户更容易选择日期,问题是,如果用户非常快速地更改月份,即使用户没有更改日期,也可以启动双击事件选择了正确的日期。

问题在于,如果没有有关双击日历的哪一部分的信息,那么在更改月份或特定日期时,是否已经完成该日历是未知的。 Beetlejuice所描述的替代方法并不优雅,但可以使用。

有人认为有更好的解决方案吗?