Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VSTO加载项中的WPF控件-ElementHost与本机WPF窗口?_C#_Wpf_Winforms_Xaml_Vsto - Fatal编程技术网

C# VSTO加载项中的WPF控件-ElementHost与本机WPF窗口?

C# VSTO加载项中的WPF控件-ElementHost与本机WPF窗口?,c#,wpf,winforms,xaml,vsto,C#,Wpf,Winforms,Xaml,Vsto,我有一个VSTO Microsoft Word加载项。当用户单击功能区按钮时,我希望显示一个WPF窗口。我一直认为实现这一点的唯一方法是在Winforms窗体中添加ElementHost控件,并在其顶部添加WPF控件。但是我通过发现,我也可以通过将WPF UserControl转换为WPF窗口并使用control.Show()来显示它来做同样的事情。这似乎消除了使用ElementHost的需要。在我走这条路之前,有什么理由我不应该这样做吗?这样做有任何技术上的差异或速度上的差异吗?您能确认您希望

我有一个VSTO Microsoft Word加载项。当用户单击功能区按钮时,我希望显示一个WPF窗口。我一直认为实现这一点的唯一方法是在Winforms窗体中添加ElementHost控件,并在其顶部添加WPF控件。但是我通过发现,我也可以通过将WPF UserControl转换为WPF窗口并使用control.Show()来显示它来做同样的事情。这似乎消除了使用ElementHost的需要。在我走这条路之前,有什么理由我不应该这样做吗?这样做有任何技术上的差异或速度上的差异吗?

您能确认您希望显示一个与Word分开的
WPF
窗口,而不是一个用
WPF
构建的任务窗格吗?@Stephen,绝对不是任务窗格。从自定义VSTO功能区上的按钮调用的单独窗口。您是否在此处看到@Atmane,我没有看到该线程…这很有趣,但似乎更多的是启动整个应用程序,而不仅仅是现有加载项中的窗口/表单。谢谢。这是我在当前应用程序中所做的事情,我在技术问题或速度方面没有任何问题。您需要记住的唯一一件事是在它自己的线程上调用它,然后在窗口关闭时清理
Dispatcher
。除此之外,它的行为基本上就像一个正常的WPF窗口。