Excelbutton来调用WPF窗口

我有一个CSharp(.NET)应用程序,它使用Excel中的function区创build了一个加载项。 我有丝带的button。 我想能够点击button,并打开WPF窗口。

代码看起来像

private void OnNewButtonAction(object sender, RibbonControlEventArgs e) { var window = new View.MyWindow() { DataContext = new ViewModel.MyViewModel(), }; window.Show(); } 

其中MyWindow是System.Windows.Windowtypes的类。 MyWindow有自己的xaml文件,它有单选button,文本字段等。当我尝试运行这个 – 点击button,我得到一个XMLparsingexception – “'提供'System.Windows.StaticResourceExtension'的价值扔例外“。

有没有可能从Excel加载项调用wpf窗口? 我究竟做错了什么?

编辑:我已经看过在Office解决scheme中使用WPF控件 ,它不起作用。 它增加了一个单独的窗格,而不是我所看到的。

你应该使用Excel-DNA。 它是一个非常有用的软件devise,这样的事情,这有助于实现与WPF的Excel,你不应该再有任何问题。

你可以在这里得到它

但是,如果你不希望有一个一步一步教程如何做到这一点。

您可以尝试将WPF窗口定义为自定义控件,并将其添加到单词的自定义窗格中。 看看下面的链接,请:

在Office解决scheme中使用WPF控件

你也可以看看这个链接:

Office 2007 Excel Addin – WPFcombobox展开时折叠

我们将WPF控件添加到自定义窗格的常用方法是:

  1. 创build一个Excel加载项目

  2. 添加用户控件(WPF)名称UserControl1并添加对System.xaml的引用

  3. 编写WPF控件并成功构build项目

  4. 从Window窗体集合添加用户控件,将其命名为UserControl2

  5. 将UserControl1拖放到UserControl2,根据需要指定位置

  6. 以这种方式编码ThisAddIn.cs:

     UserControl1 myWPF; UserControl2 winformControl; Microsoft.Office.Tools.CustomTaskPane pane; System.Windows.Forms.Integration.ElementHost myHost; private void ThisAddIn_Startup(object sender, System.EventArgs e) { myWPF = new UserControl1(); winformControl = new UserControl2(); pane = CustomTaskPanes.Add(winformControl, "WPFControl"); pane.Visible = true; pane.DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight; } 

我们可以使用button来控制窗格的可见属性。

美好的一天。