Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
こんにちは、Platform SDK (Windows SDK) サポートチームです。
今回は、WPF の CheckBox コントロールのチェック マーク (オプション マーク) についてご案内します。
現象
WPF の CheckBox コントロールにおいて FlowDirection プロパティを RightToLeft に設定すると、CheckBox コントロール全体が「左向き」に描画されるだけでなく、CheckBox コントロールのチェック マーク部分も「左ハネ」で描画されるようになります。
※ WPF の CheckBox コントロールの例
なお、アラビア語版 Windows の Explorer の CheckBox コントロールや、同様に RightToLeft 設定された Windows フォームの CheckBox コントロールについては、チェック マーク部分は「右ハネ」のまま描画されます。
※ Windows フォームの CheckBox コントロールの例
原因
この動作は、WPF の CheckBox コントロールの仕様によるものです。
WPF の CheckBox コントロールのチェック マークは、チェック マーク部分の親にあたる CheckBox コントロールから継承した FlowDirection プロパティの値をもとに描画されています。
このため、WPF の CheckBox コントロールの FlowDirection プロパティが RightToLeft だった場合は、チェック マーク部分も RightToLeft として「左ハネ」で描画されます。
回避策
WPF の CheckBox コントロールのチェック マークを、アラビア語版 Windows の Explorer や Windows フォームの CheckBox のチェック マークと同じ「右ハネ」に揃える必要がある場合には、以下のように XAML から CheckBox のスタイルを LeftToRight に設定します。
<CheckBox x:Name="checkBox1" Content="CheckBox1"
FlowDirection="RightToLeft" IsChecked="True"
HorizontalAlignment="Left" Margin="80,110,0,0" VerticalAlignment="Top">
<CheckBox.Resources>
<Style TargetType="{x:Type Path}">
<Setter Property="FlowDirection" Value="LeftToRight"/>
</Style>
</CheckBox.Resources>
</CheckBox>