次のようにチェックボックスが定義されたWPFフォームがあります。
<Views:MyView Background="{DynamicResource MainBackground}">
...
<Style TargetType="{x:Type CheckBox}" BasedOn="{StaticResource {x:Static ResourceKeys:Switch.YesNoStyle}}">
...
</Style>
...
<CheckBox Grid.Column="0"
IsEnabled="False"
Checked="ToggleButton_OnChecked"
VerticalAlignment="Center"
Style="{x:Null}"
IsChecked="{Binding Path=IsSelected, RelativeSource={RelativeSource AncestorType=ListViewItem},Mode=TwoWay}" />
...
</Views:MyView>
問題があります - 灰色の背景で表示され (アクティブであっても)、ユーザーを混乱させます:
チェックされていないチェックボックス:
チェックボックス:
背景を白くしたい。
問題の考えられる原因は次のいずれかです。
- スタイル
<Style TargetType="{x:Type CheckBox}"
や - 最上位コンテナの背景設定 (
Background="{DynamicResource MainBackground}"
)。
私がしようとしました
CheckBox
とに名前を追加する- その名前の新しいスタイルを作成します。
これにより、以下に示すコードが生成され、役に立ちませんでした。
<Views:MyView Background="{DynamicResource MainBackground}">
...
<Style TargetType="{x:Type CheckBox}" BasedOn="{StaticResource {x:Static ResourceKeys:Switch.YesNoStyle}}">
...
</Style>
<Style TargetType="{x:Type CheckBox}" x:Name="MyCheckBox" BasedOn="{StaticResource {x:Type CheckBox}}">
<Setter Property="Background" Value="White"/>
</Style>
...
<CheckBox
Name="MyCheckBox"
Grid.Column="0"
IsEnabled="False"
Checked="ToggleButton_OnChecked"
VerticalAlignment="Center"
Style="{x:Null}"
IsChecked="{Binding Path=IsSelected, RelativeSource={RelativeSource AncestorType=ListViewItem},Mode=TwoWay}" />
...
</Views:MyView>
その特定のチェック ボックスの背景を白に変更するにはどうすればよいですか (他のアクティブなチェック ボックスと同じように見えるようにするため)。