WPF - 图像'不是项目的一部分或其构建操作未设置为资源'

时间:2009-03-12 14:26:31

标签: wpf image resources imagesource buildaction

我有一个需要窗口中的图像的项目。这是一张静态图片,我通过“添加>现有项目”添加。它存在于项目的根目录中。

我在测试页面中引用图像 -

<Page x:Class="Critter.Pages.Test"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="Test">
      <Image Source="bug.png"/>
</Page>

问题是我收到一条消息,说它无法找到或者它的构建操作不是资源但它存在并且它是构建操作IS资源。如果我创建一个新的应用程序并将其扔在窗口上,那么它可以正常工作。

任何帮助都会很棒。

10 个答案:

答案 0 :(得分:31)

尝试进行完全重建,或删除构建文件,然后构建文件。

Visual Studio并不总是获取对资源的更改,重新编译它可能会很痛苦。

还尝试使用完整的URI,因为当我遇到同样的问题时,这会帮助我。像

这样的东西
pack://application:,,,/MyAssembly;component/bug.png

答案 1 :(得分:19)

- &GT;右键单击图像文件 - &GT;单击属性 - &GT;选择Build Action to Resource - &GT;清洁和构建解决方案 - &GT;运行解决方案 你会得到所有

享受

答案 2 :(得分:16)

我有同样的问题。清理和重建解决方案并没有解决它,所以我重新启动了visual studio,它做到了。这里希望Visual 2010能够解决这个问题以及许多其他在Visual 2008中使用wpf的问题。

答案 3 :(得分:13)

尝试使用“/”开始图像路径:

<Image Source="/bug.png"/>

答案 4 :(得分:3)

您的问题有解决方案

<Image Source="/WpfApplication4;component/images/sky.jpg" />

“component”不是文件夹!

答案 5 :(得分:2)

它没有,或者至少目前的beta没有。我在查看完全相同的问题时找到了这个页面。重建/清洁什么也没做。关闭并重新加载解决方案后,文件再次神奇地变得兼容。

答案 6 :(得分:1)

异步加载示例,另一个选项。示例clip.mp4位于Web项目根目录中。

void Landing_Loaded(object sender, RoutedEventArgs e)
{
    //Load video async

    Uri pageUri = HtmlPage.Document.DocumentUri;
    Uri videoUri = new UriBuilder(pageUri.Scheme, pageUri.Host, pageUri.Port, "clip.mp4").Uri;           

    WebClient webClient = new WebClient();
    webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
    webClient.OpenReadAsync(videoUri);
}

void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    byte[] VideoBuffer = new byte[e.Result.Length];
    e.Result.Read(VideoBuffer, 0, (int)e.Result.Length);
    MemoryStream videoStream = new MemoryStream(VideoBuffer);
    ContentVideo.SetSource(videoStream);
    ContentVideo.Stop();
    ContentVideo.Play();
}

答案 7 :(得分:1)

我遇到了完全相同的问题,但重新启动VS2008或清理和重建项目对我来说不起作用。最后,下面的步骤就可以了。

  • 在Windows资源管理器中,将Image复制到项目资源文件夹中。示例:MyProject \ Resources \
  • 在Visual Studio中右键单击“资源”,然后选择“#34;添加&gt;现有项目&#34;并选择您刚刚复制的图像
  • 从表单XAML中将图像源设置为:"Source="Resources/MyImage.ico"(我的图像保存为图标(.ico)文件,但此方法适用于任何图像类型

希望这有助于某人

答案 8 :(得分:0)

我有类似的问题。我从解决方案资源管理器中删除了一个我没用过的someStyle.xaml文件。 然后我恢复了文件,但没有发生任何变化。清理和重建项目没有帮助。

只需删除相应的行:

<ResourceDictionary Source="someStyle.xaml"/> 

做了这个伎俩。

答案 9 :(得分:0)

我有相同的错误消息,但我的问题是一个简单的NOOB错误。

当我将.ico文件添加到“我的项目/资源”时,VS创建了一个名为Resources的子文件夹,我试图使用;

<Window Icon="icons1.ico">

我应该使用的时候;

<Window Icon="Resources/icons1.ico">

...不要判断,我在1周前开始使用WPF:)