0

我有一个 WPF DatePicker,和任何日期选择器一样,它有一个内置日历,您可以通过单击小日历图标打开它。

这个日历被放在一个弹出菜单中,所以它的行为就像一个,即:一旦它被打开,有两种方法可以关闭它:

  • 验证您的选择(用鼠标单击日期,点击“Enter”并突出显示日期等...)
  • 取消(点击“Echap”,在弹出窗口外点击,等等...)

我的问题是,我需要知道使用了哪个,但我似乎无法找到一种方法来做到这一点。

现在我听“CalendarClosedEvent”,但它没有告诉我日历是如何关闭的。

我还使用“PreviewKeyDownEvent”来捕获“Echap”键,效果很好,除了它不包括用户在日历之外单击以关闭它的情况。

有没有办法做到这一点?如果有,那是什么?

(注意:我对弹出菜单对象而不是 datePicker 中的日历对象的通用答案感到满意)

4

1 回答 1

1

至少对于 DatePicker,您可以将 SelectedDate 设置为 null (这实际上是默认设置,所以只需保留它)。然后,只要用户在控件内单击,就会触发 SelectedDateChanged。

这是我能找到的唯一可以标记差异的东西。希望能帮助到你。

于 2012-09-21T02:40:29.827 回答