在Loaded方法里面,获取ActualWidth 和 ActualHeight,有时候会是0。
获取实际长宽,需要在Measure和Arrage方法之后,Loaded过程中,可能这两个方法还未执行完。
因为每个人都说在 Loaded 完成后需要调用 ActualWidth 和 ActualHeight,所以我们只是将代码包装在调度程序中并将优先级设置为 Loaded,如下所示:
Dispatcher.Invoke(new Action(() =>
{
Height = ActualHeight;
Width = ActualWidth;
}), DispatcherPriority.Loaded);