31

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

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

<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>

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

任何帮助都会很棒。

4

10 回答 10

33

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

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

还可以尝试使用完整的 URI,因为当我遇到同样的问题时,这对我有帮助。就像是

pack://application:,,,/MyAssembly;component/bug.png
于 2009-03-12T16:03:35.273 回答
21

→ 右键单击​​图像文件 → 单击属性 → 选择构建操作到资源 → 清理并构建解决方案 → 运行解决方案

你会得到一切。

于 2011-07-07T07:06:02.960 回答
16

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

于 2009-09-30T10:21:36.300 回答
13

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

<Image Source="/bug.png"/>
于 2012-03-02T16:41:13.990 回答
4

您的问题有一个解决方案

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

“组件”不是文件夹!

于 2012-05-13T11:16:29.090 回答
2

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

于 2009-10-11T19:40:59.373 回答
2

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

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

希望这可以帮助某人

于 2014-09-05T10:34:53.157 回答
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();
}
于 2010-03-19T16:42:40.240 回答
0

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

只需删除相应的行:

<ResourceDictionary Source="someStyle.xaml"/> 

成功了。

于 2010-12-26T15:29:58.697 回答
0

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

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

<Window Icon="icons1.ico">

我应该在什么时候使用;

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

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

于 2013-02-06T09:11:46.517 回答