我有一个TabItem,其中包含一个日历控件和一个按钮。问题是,当日历的选定日期与之前选择的日期相同时,该按钮需要两次点击才能触发其Click事件。
我已经实现了日历的selectedDatesChanged事件,以便在当前所选日期与上一个选择不同时解决此问题。代码如下:
selectedDatesChanged(object sender, SelectionChangedEventArgs e)
{
this.CaptureMouse();
this.ReleaseMouseCapture();
}
我正在寻找的是当日历的selectedDate与之前选择的日期没有差异时,在上述函数中显示相同效果的方法。 我尝试处理GotFocus和MouseUp事件,但它没有解决问题。
有没有人对如何解决这个问题有任何想法?
谢谢, 纳温
答案 0 :(得分:14)
这是我在网上找到的最佳答案。它仍然不完美,因为它对标记为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);
}
}
答案 1 :(得分:6)
你可以写一下:
Mouse.Capture(null);
这将解决鼠标保持焦点的问题