我定义了两个简单的边距样式,一个基于另一个。
<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'样式中。
这可能吗?
答案 0 :(得分:1)
AFAIK,如果没有相当数量的代码,这是不可能的。
更简单的方法是使用两个样式,静态边距应用于两个不同的面板\装饰器。
类似的东西:
<Border Style="{StaticResource marginIndentStyle}">
<Border Style="{StaticResource marginStyle}">
.....
</Border>
</Border>
这实际上会增加利润。因此,第二个边界中的边距将具有第一个边距和第二个边距的组合。