在Windows窗体应用程序中托管WPF控件

时间:2015-07-22 06:36:40

标签: winforms wpf-controls

在我的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窗体应用程序中使用我的WPF控件时,我无法使用上述方法,因为System.Application.Current将为null。

现在我必须了解以下事项。

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

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

1 个答案:

答案 0 :(得分:0)

我找到了答案。只是初始化一个Application实例就可以了。

if(Application.Current == null)     新申请();