WPF按钮需要点击两次点击事件
问题描述:
我有一个包含日历控件和按钮的TabItem。问题是,当日历的选定日期与先前选择的日期相同时,该按钮需要两次点击来触发其Click事件。WPF按钮需要点击两次点击事件
我已经实现日历的selectedDatesChanged事件来解决这个问题,当前选择的日期不同于以前的选择。代码如下:
selectedDatesChanged(object sender, SelectionChangedEventArgs e)
{
this.CaptureMouse();
this.ReleaseMouseCapture();
}
我正在寻找一种方法以在上述功能所示,当日历的selectedDate不会从先前选定的日期不同,相同的效果。 我试着处理GotFocus和MouseUp事件,但它不能解决问题。
有没有人有任何想法如何解决这个问题?
感谢, 纳文
答
这个问题是最好的答案,我在网上找到。它仍然不是完美的,因为它没有帮助标记为IsDefault或IsCancel的按钮
protected override void OnPreviewMouseUp(MouseButtonEventArgs e)
{
base.OnPreviewMouseUp(e);
if (Mouse.Captured is Calendar || Mouse.Captured is System.Windows.Controls.Primitives.CalendarItem)
{
Mouse.Capture(null);
}
}
+0
原始来源似乎在这里:http://social.msdn.microsoft.com/Forums/vstudio/en-US/b4413872-59d0-4a06-9d20-8d21de126dc6/calendar-not-losing-focus-wpf-40 ?论坛= WPF – SepehrM 2014-07-23 17:34:10
答
你可以简单地写:
Mouse.Capture(null);
这将解决鼠标持有焦点
我通过处理日历的PreviewMouseUp事件来解决问题。 – naveen 2011-04-04 19:28:08
如果您的问题得到解决,会建议您发布解决方案作为答案,然后接受它。具有类似问题的用户将看到一个被接受的答案,而不是一个解决方案的评论。 – publicgk 2011-04-05 10:22:36
这仍然是日历控件的问题。在任何时候你都要关注它,你需要点击两次其他控件才能得到回应。任何人都得到了很好的解决 – MikeKulls 2011-06-21 05:04:22