【问题标题】:WPF: Mimicing TextBlock auto-spacing between contentWPF:模仿内容之间的 TextBlock 自动间距
【发布时间】:2010-11-11 08:43:22
【问题描述】:

我注意到将 TextBlock 放在另一个 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 内的任何内容。我不想手动设置边距。

【问题讨论】:

  • 不完全清楚你在追求什么。自定义 ItemsControl 是什么意思?这与 TextBlocks 有什么关系?你打算把 TextBlocks 放在 ItemsControl 里面吗?或者只是任何对象?

标签: wpf itemscontrol textblock stackpanel


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多