Wpf 如何知道WindowsFormsHost渲染的大小,该大小放置在TabControl的TabItem中?

Wpf 如何知道WindowsFormsHost渲染的大小,该大小放置在TabControl的TabItem中?,wpf,wpf-controls,Wpf,Wpf Controls,我正在开发一个Wpf应用程序,它有一个带有3个选项卡项的TabControl,每个选项卡项由一个WindowsFromsHost组成。在应用程序启动时,WindowsFromsHost.ActualHeight和WindowsFromsHost.ActualWidth为0。如何获得渲染大小?您可以使用TabItem的Loaded事件。在启动时获取控件大小还为时过早 实际宽度和实际高度适合渲染大小 例如: Xaml: 我可以得到实际的宽度和实际高度使用下面的代码 _winFormHost.Disp

我正在开发一个Wpf应用程序,它有一个带有3个选项卡项的TabControl,每个选项卡项由一个WindowsFromsHost组成。在应用程序启动时,WindowsFromsHost.ActualHeight和WindowsFromsHost.ActualWidth为0。如何获得渲染大小?

您可以使用TabItem的Loaded事件。在启动时获取控件大小还为时过早

实际宽度和实际高度适合渲染大小

例如:

Xaml:


我可以得到实际的宽度和实际高度使用下面的代码

_winFormHost.Dispatcher.BeginInvoke(DispatcherPriority.Background, new DispatcherOperationCallback(delegate(Object state)
                    {
                        _height = (int)_winFormHost.ActualHeight;
                        _width = (int)_winFormHost.ActualWidth;
                        return null;
                    }), null);

你能解释一下下面的答案吗?
private void aaa_Loaded(object sender, RoutedEventArgs e)
{
  //get rendered size
}
_winFormHost.Dispatcher.BeginInvoke(DispatcherPriority.Background, new DispatcherOperationCallback(delegate(Object state)
                    {
                        _height = (int)_winFormHost.ActualHeight;
                        _width = (int)_winFormHost.ActualWidth;
                        return null;
                    }), null);