1
我正在嘗試創建一個允許用戶單擊並切換選定日期的日曆。所以他們點擊他們想要包含的每個日期,並且一次選擇一個日期(不使用Ctrl或Shift鍵)。無論如何,爲了實現這個目標,我把兩個日曆放在我的控制之上。我做一個不透明的,讓對方一個打不可見的測試:如何檢測WPF日曆控件上的月份自動移動?
<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
嘗試,但這些始終是零。
另外,(獎金問題)是否有一個簡單的方法來突出與不同顏色的日曆日期?喜歡用交替顏色突出每一天?紅色,藍色,紅色等。
感謝您的幫助。