【WPF】按钮需要点击两次才能触发事件,原因是这个...

在做WPF开发时,发现有时按钮需要点击两次才能触发按钮的Click事件

 

后面经过分析,是由于控件的聚焦问题,当鼠标点击日历控件Calendar后,再点击按钮,需要点击两次

【WPF】按钮需要点击两次才能触发事件,原因是这个...

点击第一次,Calendar失去焦点,点击第二次才能生效

 

解决方案:

为Calendar添加PreviewMouseUp事件,当鼠标在Calendar上松开时发生

<Calendar Name="calDate" PreviewMouseUp="calDate_PreviewMouseUp" HorizontalAlignment="Left" Margin="409,183,0,0" VerticalAlignment="Top" DisplayMode="Month" SelectionMode="MultipleRange"/>

鼠标清除捕获控件

private void calDate_PreviewMouseUp(object sender, MouseButtonEventArgs e)
{
    if (Mouse.Captured is CalendarItem)
    {
        Mouse.Capture(null);
    }
}

完成...

上一篇:Date,Calendar,SimpleDataFormat和System类


下一篇:android应用案例之Activity上一页面与下一页面返回参数