0

如果我有一个包含许多元素的 Horizo​​ntal StackPanel,它们之间的边距不同:

如果我给每个元素一个左边距,或者给每个第二个元素一个左右边距,有什么区别吗 - 这样只有一个元素设置了它的边距属性。

<StackPanel Orientation="Horizontal">
<TextBlock Name="textblock1" />
<TextBlock Name="textblock2" Margin="5,0,0,0" />
<TextBlock Name="textblock3" Margin="10,0,0,0" />
...
</StackPanel>

或者

<StackPanel Orientation="Horizontal">
<TextBlock Name="textblock1" />
<TextBlock Name="textblock2" Margin="5,0,10,0" />
<TextBlock Name="textblock3" />
...
</StackPanel>

我只是想知道是否有关于此的最佳实践。

4

1 回答 1

1

如果每个元素的 Margin 都相同,则可以将其分解为样式:

<StackPanel Orientation="Horizontal">
   <StackPanel.Resources>
      <Style TargetType="TextBlock>
         <Setter Property="Margin" Value="5,0,0,0" />
      </Style>
   </StackPanel.Resources>
   <TextBlock Name="textblock1" />
   <TextBlock Name="textblock2" />
   <TextBlock Name="textblock3" />
   ...
</StackPanel>

除此之外没有任何区别。

于 2012-08-06T21:34:56.617 回答