.net 如何在日历中断日期检测鼠标双击?
在我的WPF/C#app中,我有一个.net 如何在日历中断日期检测鼠标双击?,.net,wpf,calendar,double-click,.net,Wpf,Calendar,Double Click,在我的WPF/C#app中,我有一个Calendar控件,设置了BlackoutDates范围。我还想处理MouseDoubleClick事件,但我看不出如何确定用户双击了一个断电日期-在这种情况下,返回给事件处理程序的日期是最近选择的有效日期(即非断电日期)。我如何“忽略”双击这些停电日期 编辑: XAML: 您可以通过定义日历日按钮样式来处理每个日历日按钮的鼠标双击: <Calendar x:Name="cal"> <Calendar.CalendarDayButt
Calendar
控件,设置了BlackoutDates
范围。我还想处理MouseDoubleClick
事件,但我看不出如何确定用户双击了一个断电日期-在这种情况下,返回给事件处理程序的日期是最近选择的有效日期(即非断电日期)。我如何“忽略”双击这些停电日期
编辑:XAML:
您可以通过定义
日历日按钮样式来处理每个日历日按钮的鼠标双击
:
<Calendar x:Name="cal">
<Calendar.CalendarDayButtonStyle>
<Style TargetType="CalendarDayButton">
<EventSetter Event="MouseDoubleClick" Handler="cal_MouseDoubleClick" />
</Style>
</Calendar.CalendarDayButtonStyle>
</Calendar>
您可以通过定义日历日按钮样式来处理每个日历日按钮的鼠标双击
:
<Calendar x:Name="cal">
<Calendar.CalendarDayButtonStyle>
<Style TargetType="CalendarDayButton">
<EventSetter Event="MouseDoubleClick" Handler="cal_MouseDoubleClick" />
</Style>
</Calendar.CalendarDayButtonStyle>
</Calendar>
我们能看看密码吗?@MattL。不确定这会有什么帮助,但我会补充一些东西。我们能看看代码吗?@MattL。我不确定这会有什么帮助,但我会补充一些东西这很好!然而。。。我也在使用MVVM模式的Interaction.Triggers
并没有找到如何有效地将处理程序移动到视图模型,而不是将其放入后面的代码中。建议?或者我应该再问一个问题是的,请回答。不要在评论栏问其他问题,而是给你一个线索;编写调用命令的附加行为。或者简单地从视图中的代码隐藏事件处理程序调用该命令。您不能在样式中应用交互触发器。这太棒了!然而。。。我还在MVVM模式中使用Interaction.Triggers
,但我不知道如何有效地将处理程序移动到视图模型,而不是将其放在代码后面。建议?或者我应该再问一个问题是的,请回答。不要在评论栏问其他问题,而是给你一个线索;编写调用命令的附加行为。或者简单地从视图中的代码隐藏事件处理程序调用该命令。不能在样式中应用交互触发器。
<Calendar x:Name="cal">
<Calendar.CalendarDayButtonStyle>
<Style TargetType="CalendarDayButton">
<EventSetter Event="MouseDoubleClick" Handler="cal_MouseDoubleClick" />
</Style>
</Calendar.CalendarDayButtonStyle>
</Calendar>
private void cal_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
System.Windows.Controls.Primitives.CalendarDayButton button = sender as System.Windows.Controls.Primitives.CalendarDayButton;
DateTime clickedDate = (DateTime)button.DataContext;
if (!cal.BlackoutDates.Contains(clickedDate))
{
MessageBox.Show("No blackout date was clicked!");
}
}