呈现之前的 WPF 文本框高度

Posted

技术标签:

【中文标题】呈现之前的 WPF 文本框高度【英文标题】:WPF textbox height before its rendered 【发布时间】:2012-03-19 23:53:35 【问题描述】:

如何在渲染对象之前获取文本框的实际高度 在 wpf 中?

以下代码可以在 Windows 中运行,但在 WPF 中等效的是什么?

textBox1.Text = "Test";  
FontFamily fontFamily = new FontFamily("Arial");  
float FontLineSpacing = fontFamily.GetLineSpacing(FontStyle.Regular);  

// Get the em height of the font family in design units.  
int emHeight = fontFamily.GetEmHeight(FontStyle.Regular);  
var Height = (textBox1.Font.Size * FontLineSpacing / emHeight) + 7;

【问题讨论】:

我已经编辑了你的问题 - 请下次使用干净的语言,避免使用重复的问号,这对任何人没有帮助。 您是否要获取文本的大小?还是文本框的大小? 如果是TextBox 的高度,那么textBox1.ActualHeight 就是你想要的。 感谢 Shai,我需要文本框的实际高度,但在渲染到画布或网格之前。 textBox1.ActualHeight 有效,但在绘制或渲染之后,而不是之前。 【参考方案1】:

您可以在访问其ActualHeight 之前调用元素的UpdateLayout() 方法。

例如txtBlock.UpdateLayout()。

【讨论】:

以上是关于呈现之前的 WPF 文本框高度的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WPF 中的删除操作之前启用文本框并等待输入条件

制作“热键”以聚焦 WPF 中的文本框

在 XAML 中怎么说:默认宽度和高度,例如文本框

WPF 文本框设置了阴影效果后,因左右的transform变化引发的拉伸渲染问题

WPF开发登录窗口之——添加文本输入框用户控件

DataGridTemplateColumn 绑定在 WPF 中使用文本框和 MVVM