WPF日历控件保持鼠标

Sco*_*ott 10 c# wpf calendar

所以我Calendar在VS2010的全新WPF应用程序中删除了MainWindow.xaml上的标准WPF 控件.如果我单击日历中的某一天,然后尝试单击该应用程序的"关闭"按钮,则必须在关闭按钮上单击两次才能接受该单击.它表现得好像Calendar没有释放鼠标与应用程序的其余部分进行交互.

我已经改为Focusable假,没有任何改变,我已经尝试重写PreviewOnMouseUp并呼吁ReleaseMouseCapture()无济于事.我已经做了同样的事情MouseLeave,并MouseLeftButtonUp具有相同的结果.鉴于这些东西都不起作用我怀疑我正在咆哮错误的树.虽然也许我的GoogleFu今天不能满足要求,但谷歌已经没有任何注意事项了.

有任何想法吗?

Ere*_*mez 31

您可以通过使用如下处理程序订阅日历的PreviewMouseUp事件来更改此行为:

private void Calendar_PreviewMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    if (Mouse.Captured is CalendarItem)
    {
        Mouse.Capture(null);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这应该真的被标记为答案.接受的答案告诉你它为什么会发生,这个告诉你如何阻止它发生. (8认同)