【问题标题】:XamlParseException when attempting to open a WPF Window from Winforms尝试从 Winforms 打开 WPF 窗口时出现 XamlParseException
【发布时间】:2014-11-17 04:14:38
【问题描述】:

我在一个解决方案中有一个 Winforms 项目和多个 WPF 项目。我想从 Winform 应用程序中打开一个 WPF 窗口(如果重要的话,它是来自 Mahapps 的 MetroWindow)。

在查看this stackoverflow question 接受的答案后,我最终得到了这段代码:

OpenWPFAppButton_Click(object sender, EventArgs e)
{
    WPFApp wpfApp = new WPFApp();
    ElementHost.EnableModelessKeyboardInterop(wpfApp);
    wpfApp.Show();
}

不幸的是,如果我单击该按钮,则会发生 XamlParseException,它指向 WPFApp.xaml(主 Xaml 文件)中的第一行 Style="{StaticResource ... }"

这是否意味着我无法从包含静态资源的 Winforms 打开 WPF Windows?还是我在这里遗漏了一些简单的东西?

编辑:这是 App.xaml 文件的内容:

<Application x:Class="WPFAppProjectName.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:system="clr-namespace:System;assembly=mscorlib"
         StartupUri="WPFApp.xaml">
<Application.Resources>
    <ResourceDictionary>

        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/Selen.Wpf.SystemStyles;component/ButtonStyles.xaml"/>
            <ResourceDictionary Source="pack://application:,,,/Selen.Wpf.SystemStyles;component/MenuStyles.xaml"/>
            <ResourceDictionary Source="pack://application:,,,/Selen.Wpf.SystemStyles;component/TextBoxStyles.xaml"/>
        </ResourceDictionary.MergedDictionaries>

    </ResourceDictionary>
</Application.Resources>

【问题讨论】:

    标签: c# wpf winforms


    【解决方案1】:

    很可能在App.xaml 中定义了一些公共资源。通过 Windows 窗体运行时不会加载该文件,因此这些资源不可用。因此,您会收到此错误。

    您可以将资源定义包含在Window.xaml 文件中,或者包含在每个窗口中的自己的通用样式资源文件(也称为资源字典)中。

    【讨论】:

    • 感谢您的帮助!我已将 App.xaml 代码添加到我的问题中。在那里你可以看到一些资源包的链接。您能否告诉我,如何将这些直接包含在我的 Window.xaml 文件中?这甚至可能吗?
    • 当然。复制Application.Resources 之间的整个代码并将其复制到您的Window 中。将Application 重命名为Window
    • 当我在 Application.Resources 之间复制代码时,没有要重命名的 Application 或者您的意思是包括 Application.Resources 标签在内的所有内容?
    猜你喜欢
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多