有没有办法用TextWrapping="Wrap"
检测文本块中的换行符数?
我正在考虑使用非等宽字体。我需要这个,因为我正在创建一个新的,个性化的MessageBox窗口,它有一个大文本标题,动画,我的应用程序的标志和我的应用程序的主题。
很明显,我需要根据正文消息的LineBreaks数量来改变窗口的大小 - 类似于默认MessageBox窗口的行为方式。
答案 0 :(得分: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只是为了增加一点余量。
答案 1 :(得分:1)
Windows可以根据内容调整其大小。请参阅SizeToContent属性。