在 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)
新的应用程序();
在我的 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) 新的应用程序();