有没有办法用TextWrapping="Wrap"
检测文本块中的换行数?
我正在考虑使用非等宽字体。我需要这样做是因为我正在创建一个新的个性化MessageBox窗口,该窗口具有较大的文本标题,动画,我的应用程序的徽标以及我的应用程序的主题。
显然,我需要根据正文消息的LineBreaks数量更改窗口的大小-类似于默认MessageBox窗口的行为。
最佳答案
您可以看到没有包装就得到了多少txtName.ActualHeight
,然后将ActualHeight(包装)除以您之前获得的值。您应该获得行数。
注意:您不会在构造函数中获得“实际高度”。在文本块在表单中呈现后,您将获得它。
例如:
(无包装)
txt.ActualHeight
311.0
(裹)
txt.ActualHeight
1420.4400000000019
所以,
int lineCount = (txt.ActualHeight / 311.0)
希望能帮助到你 :)
根据您的问题更新:
如果您需要根据文本块高度设置消息框高度,则只需执行以下操作:
msgbox.Height = txt.ActualHeight + 10;
//我添加10只是为了增加一点余量。
关于c# - 使用换行检测TextBlock中的换行次数吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15950210/