0

我定义了两种简单的边距样式,一种基于另一种。

<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”样式中,我想将边距的左道具调整为比基本“marginStyle”样式中的左道具多 10,即比当前设置的值多 10。使用上面的类似内容会完全覆盖这些值。我只想添加到它,使得派生的“marginIndentStyle”样式的结果边距是“10,10,20,10”。

请注意,我不想将其值严格设置为 10、10、20、10 b/c 我希望“marginStyle”样式的任何更改都反映在派生的“marginIndentStyle”样式中。

这可能吗?

4

1 回答 1

1

AFAIK,如果没有大量代码,这是不可能的。

一种更简单的方法是使用两种具有静态边距的样式,这些样式应用于两个不同的面板\装饰器。

就像是:

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

这实际上将增加利润。因此,第二个边界中的任何内容都将具有作为第一个和第二个边距的组合的边距。

于 2012-05-20T12:03:01.600 回答