无法在设计时从项目子文件夹加载XAML资源

时间:2013-03-26 19:29:47

标签: wpf visual-studio xaml resources design-time

我在设计时定义了一个伪视图模型,供WPF应用程序中的视图使用(Visual Studio 2012,.NET 4.5)。视图模型引用作为项目内容一部分的图像。只要我将图像放在根项目文件夹中,就可以使用以下URI约定在设计时成功加载它:

var Image = new BitmapImage(
new Uri(@"pack://application:,,,/MyAppAssemblyName;component/MyImage.png"));

图像被标记为嵌入资源(我实际上试图将其标记为内容并且它也可以正常加载)。

但是我想在Sample项目子文件夹中使用它,所以我改变了上面的代码:

var Image = new BitmapImage(
new Uri(@"pack://application:,,,/MyAppAssemblyName;component/Samples/MyImage.png"));

然后它停止工作。无论我尝试什么(内容,嵌入式资源等),都不会从项目的Samples子文件夹中加载任何内容。这很奇怪,因为我看到了使用子文件夹的各种示例,尽管我没有找到设计时的示例。我还尝试使用pack scheme siteoforigin,但是Designer尝试从Visual Studio应用程序文件夹中加载图像。

我看到了here

所描述的类似问题

1 个答案:

答案 0 :(得分:0)

我以为我终于明白了,问题就在于字符外壳。这是我的项目结构:

MyProject的      - 样品          - MyImage.png

以下URI有效:

pack://application:,,,/MyProject;component/samples/MyImage.png

这些不是:

pack://application:,,,/MyProject;component/Samples/MyImage.png
pack://application:,,,/MyProject;component/samples/myimage.png

<强>更新即可。在微软论坛发表意见和建议之后,我在每次更改URI后重新启动Visual Studio进行了更多测试,而我上面的理论似乎是错误的。字符大小写并不重要(所有三个版本都有效),但有时候VS Designer不会赶上最近的更改,并且需要VS重新启动才能让Designer使用最后一个更改。