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

Wpf 无法在设计时从项目子文件夹加载XAML资源,wpf,visual-studio,xaml,resources,design-time,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")); 该图像被标记为嵌入式资源(我实际上试图将其标记为内容

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

var Image = new BitmapImage(
new Uri(@"pack://application:,,,/MyAppAssemblyName;component/MyImage.png"));
该图像被标记为嵌入式资源(我实际上试图将其标记为内容,并且加载良好)

但我想从示例项目子文件夹中使用它,因此我更改了上面的代码,如下所示:

var Image = new BitmapImage(
new Uri(@"pack://application:,,,/MyAppAssemblyName;component/Samples/MyImage.png"));
然后它停止工作。无论我尝试什么(内容、嵌入式资源等),都不会从项目的Samples子文件夹加载任何内容。这很奇怪,因为我看到了各种使用子文件夹的示例,尽管我还没有找到设计时的示例。我还尝试使用打包方案siteoforigin,但随后设计器尝试从VisualStudio应用程序文件夹加载图像


我看到了一个类似的问题,我想我终于解决了,问题在于字符大小写。以下是我的项目结构:

我的项目 -样品 -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更改后重新启动VisualStudio做了更多的测试,我上面的理论似乎是错误的。字符大小写无关紧要(所有三个版本都有效),但有时VS Designer无法跟上最新的更改,需要重新启动VS才能让设计器使用最后一次更改。

出于好奇,如果您使用XAML设置图像的源代码是否有效?是的,我可以同时指定“MyImage.png”和“Samples/MyImage.png”,他们都在XAML上工作。问题只是以编程方式从子文件夹加载图像。我没有使用VS2012,但我只是运行了一个快速测试,并使用d:DataContext=“{d:DesignInstance Type=lcl:DesignData}”语法在VS2010中运行良好。请注意,“我的图像”的构建操作是资源。几小时后我回家时会查2012年的。您可以尝试将VS的新实例作为调试器附加到运行设计器的实例。您可能会在输出窗口中看到一些错误。谢谢,但是您是否以编程方式引用了设计数据模型中的图像?是的。我创建了一个名为Image的属性,并在数据模型的构造函数中将其设置为.png。它适用于我在子文件夹中的图像。