在做WPF开发时,发现有时按钮需要点击两次才能触发按钮的Click事件
后面经过分析,是由于控件的聚焦问题,当鼠标点击日历控件Calendar后,再点击按钮,需要点击两次
点击第一次,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);
}
}
完成...