0

有没有办法强制 BoxSizer 以特定间隙显示其元素?(彼此靠近而不是更远)

我正在尝试找到一种方法将 5 个 StaticText 元素更紧密地显示在一起,以便它们适合一个小面板,但只能适合 4 个元素如果它们彼此靠近,显然有 5 个 StaticTexts 的空间 如果它们彼此靠近,显然有 5 个静态文本的空间

我想我也可以把它变成一个带有线条的静态文本,但我试图将每一行作为一个不同的对象

4

2 回答 2

1

每个静态文本都有一个遵循本机平台准则的“最佳大小”。打算修改时,明显的建议是不要这样做。

但如果你觉得你真的必须...

您可以获得GetSize需要适合所有这些的小面板的高度(参见 ),将其除以 5 并将每个静态文本的高度设置为结果,即aStaticText->SetSize(-1, smallPanelHeight/5);

另一种方法是为每个静态文本设置一个较小的字体,并让它相应地调整其“最佳大小”。在决定哪种字体最适合您之前,您可能需要尝试几种字体大小。

于 2018-07-17T21:41:22.493 回答
0

我想这是不可能的。布局引擎考虑了最大的字符串大小,加上一个小的边距,以便可以清楚地看到。

您可以尝试通过AddSpacer传递负值在字符串之间添加固定空格。这是一个我没有测试过的肮脏的黑客。

于 2018-07-17T16:34:38.517 回答