有没有办法用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/

10-10 18:40