Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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# 如何在Excel操作窗格中使用WPF控件?_C#_Wpf_Winforms_Excel_Vsto - Fatal编程技术网

C# 如何在Excel操作窗格中使用WPF控件?

C# 如何在Excel操作窗格中使用WPF控件?,c#,wpf,winforms,excel,vsto,C#,Wpf,Winforms,Excel,Vsto,有几个参考资料解释了如何将WinForms控件添加到Excel。看看这两个: 他们都提到了使用WPF控件的最新选项(我需要的那个)。不幸的是,这两种资源都缺乏基本部分。缺少一个链接: (1) 微软网站提到了一些视频——确切的标题符合我的要求——但该网站中的所有视频似乎都被删除了 (2) Clear Lines站点包含一个优秀的、循序渐进的项目,但遗憾的是,当提到关键部分时,作者使用了一些VS-2010中不存在的工具(“工具箱的WPF互操作性部分”)+ 根据以上截图和其他网站,我得出结论,

有几个参考资料解释了如何将WinForms控件添加到Excel。看看这两个:

他们都提到了使用WPF控件的最新选项(我需要的那个)。不幸的是,这两种资源都缺乏基本部分。缺少一个链接:

(1) 微软网站提到了一些视频——确切的标题符合我的要求——但该网站中的所有视频似乎都被删除了

(2) Clear Lines站点包含一个优秀的、循序渐进的项目,但遗憾的是,当提到关键部分时,作者使用了一些VS-2010中不存在的工具(“工具箱的WPF互操作性部分”)+

根据以上截图和其他网站,我得出结论,缺少的链接,即我的WPF UserControl与其在Excel中的外观之间的连接是某种
ElementHost

@HighCore的附录。请参阅下面的工具箱:


我不知道你为什么认为有一个“缺失的环节”。这是在winforms上承载WPF内容的标准方法,在上面的链接中有完整的文档记录,还有

给定任何winforms容器(如
表单
面板
),只需执行以下操作:

var elementHost = new ElementHost 
                  {
                      Child = new YourWPFContentHere()
                  };

this.Controls.Add(elementHost);
确保添加对这些程序集的引用:

  • 展示中心

  • 呈现框架

  • System.Xaml

  • 窗台

  • 窗台组合

尊敬的自己:

您的问题是试图将一个WPF控件放置在另一个WPF控件

您需要创建一个老式的WinForm控件,然后使用工具箱,如下所示:

请注意,ElementHost Tasks部分已重命名为WPF Interoperability,但它在其他方面非常活跃

来自MSDN杂志:


作为一名WPF编码器,我也尝试在VSTO应用程序中使用WPF控件,但到目前为止,我不得不使用劣等WinForms方法,因为它是有文档记录的。VSTO应用程序与WPF配合使用非常好。我目前正在重构一个Win-Form Excel应用程序,它使用浏览器将自定义HTML从web服务转换为WPF应用程序。对我来说,最重要的是学习如何在不使用WPF应用程序的情况下操作WPF,使其显示在屏幕上。为了克服这个问题,我从这里开始:这导致了我现在的架构。控件和窗口的WPF库以及Excel插件项目。引用了另一个应用程序,一切都很好。我想我是在寻找一个纯粹的WPF解决方案,然后。顺便说一句:视频和“工具箱的WPF互操作性部分”肯定都不见了。@swiss_程序员我不熟悉“工具箱”(不管是什么),但上面的代码应该可以工作。Toolbox=Ctrl-Alt-X在Visual Studio中。HighCore:你有VSTO的经验吗?很难找到关于它的好信息(比如这篇文章的一个主题)。好吧,你让我想起一位同事,他像小说家一样高速键入HTML。那是在引入可视化HTML工具之前。在被XAML吓倒后,我正在慢慢学习如何使用它。我会试试你的建议。