9

有什么方法可以检测文本块中的换行数TextWrapping="Wrap"吗?

我正在考虑使用非等宽字体。我需要这个,因为我正在创建一个新的个性化 MessageBox 窗口,它有一个大文本标题、动画、我的应用程序的徽标和我的应用程序的主题。

很明显,我需要根据正文消息的 LineBreaks 的数量来更改窗口的大小——类似于默认 MessageBox 窗口的行为方式。

4

2 回答 2

5

您可以看到没有换行的情况下获得了多少txtName.ActualHeight,然后将 ActualHeight(有换行)除以您之前获得的值。你应该得到行数。

注意:您不会在构造函数中获得实际高度。在文本块以表单呈现后,您将获得它。

例如:(NoWrap)

txt.ActualHeight
311.0

(裹)

txt.ActualHeight
1420.4400000000019

所以,

int lineCount = (txt.ActualHeight / 311.0)

希望能帮助到你 :)

根据您的问题更新更新:

如果您需要根据您的文本块高度设置消息框高度,您可以简单地执行以下操作:

msgbox.Height = txt.ActualHeight + 10;

// 我加了 10 只是为了增加一点边距。

于 2013-04-11T14:03:21.137 回答
2

Windows 可以根据内容调整其大小。请参阅SizeToContent属性。

于 2013-04-11T14:11:30.390 回答