Q022. ToggleButton のチェック時に、Background を変えても表示に反映されません。Background のチェック時に Background を変える方法はありますか。
A. 以下のように DataTemplate を用意し、ToggleButton.IsChecked プロパティが True になった場合に ContentTemplate に設定するよう Trigger を定義します。
<Window.Resources> <DataTemplate x:Key="BlueBackground"> <Grid Background="Blue" > <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" TextAlignment="Center" Text="{Binding}"/> </Grid> </DataTemplate> <Style x:Key="toggleButton" TargetType="{x:Type ToggleButton}"> <Style.Triggers> <Trigger Property="IsChecked" Value="True"> <Setter Property="HorizontalContentAlignment" Value="Stretch"/> <Setter Property="VerticalContentAlignment" Value="Stretch"/> <Setter Property="ContentTemplate" Value="{StaticResource BlueBackground}"/> </Trigger> </Style.Triggers> </Style> </Window.Resources>