2012-03-01 2 views
1

Как вы можете получить фактическую высоту текстового поля перед визуализацией объекта в wpf?Высота текстового поля 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; 
+3

Я отредактировал ваш вопрос - пожалуйста, используйте чистый язык в следующий раз и избегайте использования повторяющихся вопросительных знаков, он никому не помогает. – Shai

+2

Вы пытаетесь получить размер текста? Или размер текстового поля? – dowhilefor

+0

Если это высота 'TextBox', то' textBox1.ActualHeight' - это то, что вы хотите. – ChrisF

ответ

3

Вы можете вызвать метод UpdateLayout() элемента перед обращением к его ActualHeight.

Например txtBlock.UpdateLayout().