WPF:模仿内容之间的TextBlock自动间距

时间:2010-11-11 08:43:23

标签: wpf itemscontrol textblock stackpanel

我注意到将TextBlocks放在另一个TextBlock中会自动给它们间隔一些空格。我想将此行为用于自定义ItemsControl。我希望这个ItemsControl中的内容能够自动在它们之间获得一定数量的像素,但只能在最后一个项目之间,而不是在最后一个项目之间或之后。

(编辑)

<TextBlock>
  <TextBlock Text="A" />
  <TextBlock Text="B" />
  <TextBlock Text="C" />
</TextBlock>

给予:“A B C”而不是“ABC”

<ItemsControl>
  <Button Content="A" />
  <Button Content="B" />
  <Button Content="C" />
</ItemsControl>

给出了三个紧密排列的按钮,但是我想要一个按钮B周围的边距,即每个按钮之间的间距,或者这个ItemsControl中的任何内容。我不想手动设置边距。

1 个答案:

答案 0 :(得分:1)

我自己找到了解决方案。诀窍是找出itemscontrol中的项目是第一个还是最后一个,并根据此设置样式中的边距。 itemscontrol中有一个名为AlternationIndex的附加属性可用于此目的。如果将AlternationCount设置为9999,我们将AlternationIndex与accual指数(最多9999)相同,然后可以将第一个(AlternationIndex == 0)上的边距设置为其他值,然后是默认边距。问题解决了。