0

2 つの単純なマージン スタイルが定義されており、一方は他方に基づいています。

<Style x:Key="marginStyle" TargetType="FrameworkElement">
    <Setter Property="Margin" Value="0,10,20,10"/>
</Style>

<!-- based on marginStyle -->
<Style x:Key="marginIndentStyle" TargetType="FrameworkElement" BasedOn="{StaticResource marginStyle}">
    <Setter Property="Margin" Value="10,0,0,0"/>
</Style>

派生した 'marginIndentStyle' スタイルでは、マージンの Left プロップを、ベースの 'marginStyle' スタイルの Left プロップよりも 10 大きくなるように調整します。つまり、現在の設定よりも 10 大きくなります。上記のようなものを使用すると、値が完全に上書きされます。派生した「marginIndentStyle」スタイルの結果のマージンが「10,10,20,10」になるように追加したいだけです。

その値を厳密に 10,10,20,10 b/c に設定したくないことに注意してください。「marginStyle」スタイルの変更は、派生した「marginIndentStyle」スタイルに反映されます。

これは可能ですか?

4

1 に答える 1

1

AFAIK、これはかなりの量のコードなしでは不可能です。

より簡単な方法は、2つの異なるパネル\デコレータに適用される静的マージンを持つ2つのスタイルを持つことです。

何かのようなもの:

<Border Style="{StaticResource marginIndentStyle}">
    <Border Style="{StaticResource marginStyle}">
         .....
    </Border>
</Border>

これは、事実上、マージンを悪化させます。したがって、2番目の境界にあるものは、1番目と2番目のマージンの組み合わせとしてマージンを持ちます。

于 2012-05-20T12:03:01.600 に答える