在 Windows 个表单应用程序中托管 WPF 控件

Hosting WPF control in Windows Forms Application

在我的 WPF 控件中,我实现了异步模式以通过以下方式执行非 UI 任务。

    internal static void Execute(Action action)
    {
        if (System.Windows.Application.Current != null)
        {
            if (System.Windows.Application.Current.Dispatcher.CheckAccess())
                action();
            else
                System.Windows.Application.Current.Dispatcher.BeginInvoke(action, null).Wait();
        }
    }

这适用于 WPF 应用程序。当我在 ElementHost 的帮助下在 Windows Forms Application 中使用我的 WPF 控件时,我无法使用上述方法,因为 System.Application.Current 将为空。

现在我必须知道以下事情。

1) 当控件托管在 Windows 表单应用程序中时,是否可以访问我的 WPF 控件中的 UI 线程?

2) 如果可能,请指导我如何实现。

我找到了答案。只需初始化一个 Application 实例即可。

if(Application.Current == null) 新的应用程序();