无法打包Uri工作

时间:2012-03-23 15:27:25

标签: wpf uri

我正在构建一个WPF应用程序。该解决方案包含一个名为CustomControls的WPF控件库项目。 CustomControls项目文件夹下有一个名为Layouts的文件夹。该文件夹中有一个名为OnscreenLayout.xml的XML文件。此文件的Build Action属性设置为Embedded Resource。

我正在尝试将该文件加载到后面代码中的流中,并将该流传递给第三方库类的方法。有问题的代码如下所示:

OnscreenKeyboard.DefaultLayout = FPS.VirtualKeyboard.KeyboardLayout.Create( 
    App.GetResourceStream( 
        new Uri( @"/CustomControls;component/Layouts/OnscreenLayout.xml", 
            UriKind.Relative ) ).Stream );

当此代码运行时,它会抛出带有消息

的IOException
Cannot locate resource 'layouts/onscreenlayout.xml'.

我甚至尝试过将此字符串用于Uri:

@"pack://application:,,,/CustomControls;component/Layouts/OnscreenLayout.xml"

但没有快乐。我做错了什么?

编辑:我甚至尝试将文件的构建操作从“嵌入式资源”更改为“资源”,但仍然无效。

由于

1 个答案:

答案 0 :(得分:0)

内容资源构建操作对WPF应用程序中使用的资源文件有效。

请避免使用其他构建操作,例如嵌入式资源 - 这也适用于相应的API,但不受WPF青睐。