C# 您如何在WPF日历控件上检测自动月班?
我正在尝试创建一个日历,允许用户单击并切换所选日期。因此,他们单击要包含的每个日期,并在不使用ctrl或shift键的情况下一次选择一个日期。无论如何,为了实现这一点,我把两个日历放在我的控件上。我将其中一个设置为不透明,将另一个设置为不可见:C# 您如何在WPF日历控件上检测自动月班?,c#,wpf,user-interface,user-controls,calendar,C#,Wpf,User Interface,User Controls,Calendar,我正在尝试创建一个日历,允许用户单击并切换所选日期。因此,他们单击要包含的每个日期,并在不使用ctrl或shift键的情况下一次选择一个日期。无论如何,为了实现这一点,我把两个日历放在我的控件上。我将其中一个设置为不透明,将另一个设置为不可见: <Calendar x:Name="_visibleCalendar" SelectionMode="MultipleRange" IsHitTestVisible="False" Margin="0,0,0,-46"/> &
<Calendar x:Name="_visibleCalendar" SelectionMode="MultipleRange" IsHitTestVisible="False" Margin="0,0,0,-46"/>
<Calendar x:Name="_selectableCalendar" Opacity="0.5" SelectedDatesChanged="DateClicked" VerticalAlignment="Bottom"/>
private void DateClicked(object sender, SelectionChangedEventArgs e)
{
DateTime? date = _selectableCalendar.SelectedDate;
_selectableCalendar.SelectedDate = null;
if (date != null)
{
if (_visibleCalendar.SelectedDates.Contains((DateTime) date))
{
_visibleCalendar.SelectedDates.Remove((DateTime) date);
}
else
{
_visibleCalendar.SelectedDates.Add((DateTime) date);
}
}
}
这样做的目的是允许用户单击_selectableCalendar并将其选择添加到_visibleCalendar.SelectedDates
有点酷,如果我自己这么说的话。除了用户更改不可见日历上的月份外,它工作得非常好
所以,我需要知道的是,我如何检测日历已转移到显示不同的月份
我尝试过使用DisplayDateStart和DisplayDateEnd,但它们总是空的
另外,还有一个问题,有没有一种简单的方法可以用不同的颜色突出显示日历上的日期?喜欢用交替的颜色来突出每一天吗?红、蓝、红等等
谢谢你的帮助。天真的方法
private void DateClicked(object sender, SelectionChangedEventArgs e)
{
var dt = selectableCalendar.SelectedDate;
if (_curr == null)
_curr = selectableCalendar.SelectedDate;
if (((DateTime)_curr).Month != ((DateTime)dt).Month)
{
_curr = dt;
// blah
}
}
时间在哪里_咖喱;已在类范围中声明
根据您的要求,组合if语句