我正在构建一个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 );
当此代码运行时,它会抛出带有消息
的IOExceptionCannot locate resource 'layouts/onscreenlayout.xml'.
我甚至尝试过将此字符串用于Uri:
@"pack://application:,,,/CustomControls;component/Layouts/OnscreenLayout.xml"
但没有快乐。我做错了什么?
编辑:我甚至尝试将文件的构建操作从“嵌入式资源”更改为“资源”,但仍然无效。
由于
贝
答案 0 :(得分:0)
仅内容和资源构建操作对WPF应用程序中使用的资源文件有效。
请避免使用其他构建操作,例如嵌入式资源 - 这也适用于相应的API,但不受WPF青睐。