多项目解决方案上的System.Windows.Markup.XamlParseException(混合平台)

时间:2018-11-21 09:40:14

标签: c# wpf winforms mahapps.metro

我已经将WPF项目集成到一个混合解决方案中。该解决方案有3个用WinForms(.cs)编写的项目,1个用WinForms(.vb)编写的项目以及我的一个用WPF(使用MahApps)编写的项目。 我的项目/窗口的所有者必须是用WinForm编写的三个所有者之一。

我这样打了电话:

using WPFSolution;
using System.Windows.Forms.Integration;

private void buttonOpenWPFUi_Click(object sender, EventArgs e)
    {
        var pm = new ProductsMenu();
        ElementHost.EnableModelessKeyboardInterop(pm);
        pm.Show();
    }

ProductsMenu是我在App.xaml中的起点

但是当我到达InitializeComponents()的{​​{1}}时,抛出了 System.Windows.Markup.XamlParseException

错误是: IOException:无法找到资源'resources / icons.xaml'。

我的App.xaml文件:

ProductsMenu.xaml.cs

我试图将Icons.xaml / Build Action设置为Resource和Page。 我想念什么吗?

2 个答案:

答案 0 :(得分:0)

知道了(或至少是一种解决方法)。

  1. 我已取消引用WPFSolution项目。
  2. 编译了WPF解决方案     作为.dll(我已将所有合并的字典复制到每个     window.xaml,删除了app.xaml文件并更改了应用程序     输入类库)
  3. 将WPFSolution.dll复制到bin /发行版中     -主项目的bin / debug
  4. 引用了.dll

一切都像魅力一样

答案 1 :(得分:0)

尝试以下语法:

<ResourceDictionary Source="/WPFSolution;component/Resources/Icons.xaml" />

在这种情况下,“页面”也是正确的构建选项