実現したいこと
ControlTemplateを設定した場合でも、Blackout機能の×マークが表示させたい
前提
下記のサイトを参考にカレンダーを自作しています。
https://qiita.com/pregum/items/775b24fbf2eb80e43991
発生している問題・エラーメッセージ
xaml
xml
1 <Calendar x:Name="rootCalendar" HorizontalAlignment="Center" Language="ja-JP" VerticalAlignment="Center" Margin="5" > 2 <Calendar.Background>White</Calendar.Background> 3 <Calendar.CalendarDayButtonStyle> 4 <Style TargetType="{x:Type CalendarDayButton}"> 5 <Setter Property="Template"> 6 <Setter.Value> 7 <ControlTemplate TargetType="{x:Type CalendarDayButton}"> 8 <Grid Background="White"> 9 <Border BorderThickness="1" BorderBrush="Turquoise"> 10 <StackPanel MinHeight="80" MinWidth="80" > 11 <TextBlock Text="{Binding StringFormat={}{0:dd}}" Margin="2" FontSize="16"/> 12 <ItemsControl > 13 <ItemsControl.ItemsPanel> 14 <ItemsPanelTemplate> 15 <WrapPanel Margin="2" /> 16 </ItemsPanelTemplate> 17 </ItemsControl.ItemsPanel> 18 </ItemsControl> 19 </StackPanel> 20 </Border> 21 </Grid> 22 </ControlTemplate> 23 </Setter.Value> 24 </Setter> 25 </Style> 26 </Calendar.CalendarDayButtonStyle> 27 </Calendar>
試したこと
ControlTemplateを利用して設定した場合、
過去を選択不可能にする「calendar.BlackoutDates.AddDatesInPast();」機能である×マークが表示が表示されなくなりました。
選択不可である機能は有効でした。
①カレンダーコントロールのloadedメソッド内で
SelectedDates.AddRangeで日付を追加しても×マークは表示されませんでした。
②ControlTemplate内のTrigger部分に下記を追加してみたが、StartDateとEndDateでエラーになります。
エラー内容
「メンバー"StartDate"が認識されていないか、アクセスできません。」
「メンバー"EndDate"が認識されていないか、アクセスできません。」
<ControlTemplate.Triggers>
<Trigger Property="IsBlackedOut" Value="True">
<Setter Property="StartDate" Value="2000/01/01"/>
<Setter Property="EndDate" Value="2023/04/14"/>
</Trigger>
</ControlTemplate.Triggers>
補足情報(FW/ツールのバージョンなど)
Windows 10 の VisualStudio 2019 で
WPF アプリをターゲットフレームワーク .NET Framework 4.8
回答1件
あなたの回答
tips
プレビュー