从另一个Windows应用程序表单打开一个新的WPF表单

时间:2015-10-08 10:12:04

标签: wpf

从Windows窗体打开WPF申请表。我有一些功能区按钮和WPF形式的图像。但是通过单击Windows窗体上的按钮打开wpf表单时在运行时出错。当我运行WPF应用程序时,其工作正常。当我没有图像运行时,也工作正常。但是在添加图像引用时显示错误

仅在从WINDOWS应用程序打开WPF申请表时出现错误.IF是否存在相对图像路径参考

  

类型' System.Windows.Markup.XamlParseException'的第一次机会异常。发生在PresentationFramework.dll

中      

其他信息:'为System.Windows.Baml2006.TypeConverterMarkupExtension'提供价值。抛出异常。'行号' 23'和行位置' 38'。

2 个答案:

答案 0 :(得分:0)

当WPF托管在托管应用程序框架(如Windows窗体)或非托管框架(如MFC或纯Win32)中时,应用程序级资源提供的这种优雅会丢失,因为WPF的Application对象甚至无法创建。 (回想一下,它是实际创建Application实例的自动生成的代码。)因此,资源解析仅在元素树和主题级别内发生。

您可以查看http://drwpf.com/blog/2007/10/05/managing-application-resources-when-wpf-is-hosted/

在您的App类中,按以下方式添加您正在使用的所有资源Dictioanaries

 public class AppHelper
    {
        public static void IntializeApp()
        {
            if (Application.Current == null)
            {
                new App();
            }
        }
    }

在WpfApplication中编写一个helperClass

AppHelper.IntializeApp();
WpfApplication1.MainWindow p = new MainWindow();
elementHost1.Child = p;

在将Wpfcontrol添加到元素主机之前,请调用AppHelper类

{{1}}

答案 1 :(得分:0)

最后我找到了答案......

右键单击图像文件,然后选择“属性”。 将构建操作更改为内容。 如果较新,请将“复制到输出目录”更改为“复制”。

使用"。 "之前的道路 使用" pack:// siteoforigin"

="包:// siteoforigin:,,, / supportedfiles /资源/图像/ ribbonimages / New.png"