【问题标题】:WPF tab headers rearrange on window resizeWPF 选项卡标题在窗口调整大小时重新排列
【发布时间】:2015-11-23 15:02:14
【问题描述】:

我有一个带有 6 个选项卡标题的 WPF 应用程序。它们水平排列在应用程序的顶部,因此它们跨越了窗口的整个宽度——也就是说,当我拖动窗口来调整它的大小时,tabItems 与窗口一样拉伸。 问题是,当我拖动窗口时,每 8-20 像素左右它们会重新排列 1 或 2 个像素。换句话说,我希望它们看起来像

| Tab1 | Tab2 | Tab3 | Tab4 | Tab5 | Tab6 |

例如,假设窗口为 300 像素宽。当窗口为 301-308 像素宽时,选项卡继续具有上述排列,但在 309 和 310 像素宽度时,它们看起来像这样:

|    |Tab4|     |Tab5|     |Tab6|   |
|    |Tab1|     |Tab2|     |Tab3|   |

最后,当窗口宽度为 311 像素时,选项卡会恢复到原来的排列。有没有人见过这个问题?它可能来自哪里?

【问题讨论】:

  • 我必须查看样式模板以确认,但乍一看,它们看起来像是在 WrapGrid 中呈现的,或者您可能会禁用/退出模板。
  • 它们以 TabPanel 的形式呈现,因此您的想法基本上是正确的。谢谢

标签: c# wpf xaml tabs


【解决方案1】:

TabControl 的预定义样式使用 TabPanel 来显示选项卡标题 (参考:https://msdn.microsoft.com/it-it/library/ms754137(v=vs.100).aspx)。

如果宽度小于所需的宽度,TabPanel 可以在多行中显示标题。

您可以根据需要更改 TabControl 的样式并将 TabPanel 替换为另一个容器(例如,具有水平方向的 StackPanel)。

【讨论】:

  • StackPanel 工作,谢谢。我绝对没想到它会那么简单,并且很困惑为什么它不会在标签太短而不是打开和关闭时使标签包裹......但是啊。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-17
  • 2018-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多