0

我注意到将 TextBlocks 放在另一个 TextBlock 中会自动在它们之间留出一些间距。我想将此行为用于自定义 ItemsControl。我希望此 ItemsControl 中的内容在它们之间自动获取一定数量的像素,但仅在最后一项之间或在第一项之前而不是在最后一项之后。

(编辑)

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

Givese:“AB C”而不是“ABC”

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

给出了三个紧凑的按钮,但我希​​望按钮 B 周围有一个边距,即每个按钮之间的间距,或者这个 ItemsControl 中的任何内容。我不想手动设置边距。

4

1 回答 1

1

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

于 2010-11-11T13:33:08.537 回答