Как рассчитать высоту и ширину текстового блока при загрузке, если я создаю текстовый блок из кода?

TextBlock tbl= new TextBlock();
tbl.text="Kishore";

double x=tbl.ActualHeight;
double y=tbl.ActualWidth;

Если я выполню код из загруженного события в Metro - winRT вернет 0 для обоих.

Как я могу получить ActualWidth в Loaded или же SizeChanged событие?

3 ответа

Решение

Вызовите Measure(), затем Arrange(), а затем ActualWidth а также ActualHeight будет обновлено.

Можно также сделать это через

UpdateLayout();
testBlock.ActualWidth

Это может быть полезно при расчете высоты и ширины нескольких объектов.

TextBlock tbl = new TextBlock();
tbl.Text = "Kishore";

tbl.Measure(new Size(0, 0));

double x = tbl.ActualHeight;
Другие вопросы по тегам