使用换行检测TextBlock中的换行次数
本文关键字:换行 TextBlock 检测 | 更新日期: 2023-09-27 18:08:44
是否有任何方法可以检测TextWrapping="Wrap"
文本块中的断行数?
我正在考虑使用非等宽字体。我需要这个,因为我要创建一个新的个性化的MessageBox窗口,它有一个大的文本标题,动画,我的应用程序的徽标和我的应用程序的主题。
很明显,我需要根据正文消息的换行次数来改变窗口的大小——类似于默认的MessageBox窗口的行为。
您可以看到没有换行的情况下获得多少txtName.ActualHeight
,然后将ActualHeight(带换行)除以之前获得的值。你应该得到行数
注意:你不会在构造函数中得到实际的高度。当文本块在表单中呈现后,您将获得它。
如:(NoWrap)}
txt.ActualHeight
311.0
(包装)
txt.ActualHeight
1420.4400000000019
int lineCount = (txt.ActualHeight / 311.0)
希望能有所帮助:)
根据您的问题更新:
如果你需要根据你的文本块高度设置消息框的高度,你可以简单地这样做:
msgbox.Height = txt.ActualHeight + 10;
//我加了10只是为了增加一点边距
Windows可以根据内容调整其大小。参考SizeToContent属性