2

スタイルシートでWPFを使用しています。私Styleのでは、点線のフォーカス境界線の外観をカスタマイズしようとしていますCheckBox。コントロール全体ではなく、正方形の周りだけを描画するためにフォーカス境界線が必要です。

スタイルの幅を15に設定しました。点線の境界線は正しいですが、正方形を囲んでおらず、横にずれています。

スタイルを含めました。

助けてくれてありがとう。

スタイルシートの断片:

<Setter Property="Control.Template">
    <Setter.Value>
        <ControlTemplate>
            <Rectangle StrokeThickness="1" Stroke="Black"  StrokeDashArray="1 2" SnapsToDevicePixels="true" Width="15"/>
        </ControlTemplate>
    </Setter.Value>
</Setter>
4

2 に答える 2

1

あまり変わらなかったけど大丈夫だと思う

<Style x:Key="MyFocusVisual">
    <Setter Property="Control.Template">
        <Setter.Value>
            <ControlTemplate>
                <Rectangle StrokeThickness="1" Margin="-1,1,-1,1" Stroke="Black" HorizontalAlignment="Left" StrokeDashArray="1 2" SnapsToDevicePixels="true" Width="15"/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

<Canvas>
    <CheckBox Canvas.Left="100" Canvas.Top="100" TabIndex="0" Content="Content1" FocusVisualStyle="{DynamicResource MyFocusVisual}"/>
    <CheckBox Canvas.Left="100" Canvas.Top="120" TabIndex="1" Content="Content2" FocusVisualStyle="{DynamicResource MyFocusVisual}"/>
</Canvas>
于 2010-10-21T11:20:00.660 に答える
0

チェックボックスのControlTemplateを取得するには、ここに示す手法の1つを使用してBlendまたはXAMLWriterを使用します。

「正方形」がどのように、どこで定義されているかを見てください。マージンやパディング、その他のフォーマットが適用されていることがわかると思います。

その時点で、その情報を使用してスタイルを実装できます。チェックボックスのControlTemplateを実際に実装しているかどうかはスニペットからはわかりませんが、それが最も簡単な場合があります。

ああ、そして参考までに-WPFでは、それらはスタイルシートではなくResourceDictionariesと呼ばれます。

于 2010-10-21T11:12:04.297 に答える