绑定文本后从控件中获取 ActualHeight

Get ActualHeight from control after it's text has been bound

我试图在更改文本后获取 TextBlock 的 ActualHeight。此文本可能在同一页面上更改多次,这意味着我页面上的 Loaded 方法仅触发一次..

在 Page Loaded 方法中获取值工作正常,但仅限于第一次。如果我更改文本块的文本,我将无法获得新的实际高度。

到目前为止我尝试过的:

我在想是否有办法在每次设置它的值时重新加载 Textblock,这样我就可以通过 TextBlock 的 Loaded 方法获得实际高度。但是在 Windows Phone 应用程序中似乎没有 .Refresh() 方法。

在我将其文本设置为新值后,有人知道我可以做些什么来获得包括换行符在内的实际高度吗?

订阅 SizeChanged 事件。它正是针对您提供的用例。

MSDN Documentation - TextBlock Events, SizeChanged Event

只要 TextBlock 元素的 ActualHeight 或 ActualWidth 属性更改,就会触发该事件。由于 wpf 控件继承自 FrameworkElement 基础 class,WPF 控件都可以访问此 属性.