Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何在XAML中引用图像资源?_Wpf - Fatal编程技术网

Wpf 如何在XAML中引用图像资源?

Wpf 如何在XAML中引用图像资源?,wpf,Wpf,我在窗口上放置了一个Image控件,希望显示一个存储在名为“Resources.resx”的项目资源文件中的图像。资源文件中图像的名称为“搜索” 有人能告诉我怎么做吗?如果您的项目的图标文件夹中有一个图像,并且它的构建操作是“资源”,您可以这样引用它: <Image Source="/Icons/play_small.png" /> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:UI="clr-namesp

我在窗口上放置了一个
Image
控件,希望显示一个存储在名为“Resources.resx”的项目资源文件中的图像。资源文件中图像的名称为“搜索”


有人能告诉我怎么做吗?

如果您的项目的图标文件夹中有一个图像,并且它的构建操作是“资源”,您可以这样引用它:

<Image Source="/Icons/play_small.png" />
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:UI="clr-namespace:UI.Images" 

如果映像位于资源文件夹中,并且其生成操作设置为资源。您可以在XAML中引用图像,如下所示:

"pack://application:,,,/Resources/Search.png"
假设资源文件夹下没有任何文件夹结构,并且它是一个应用程序。例如,我使用:

ImageSource="pack://application:,,,/Resources/RibbonImages/CloseButton.png"

当我在Resources文件夹下有一个名为RibbonImages的文件夹时

使用资源文件的好处之一是通过名称访问资源,因此图像可以更改,图像名称可以更改,只要资源保持最新,正确的图像就会显示出来

以下是一种更干净的方法来实现这一点: 假设Resources.resx位于“UI.Images”命名空间中,请在xaml中添加命名空间引用,如下所示:

<Image Source="/Icons/play_small.png" />
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:UI="clr-namespace:UI.Images" 
按如下方式设置图像源:

<Image Source="/Icons/play_small.png" />
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:UI="clr-namespace:UI.Images" 
其中“搜索”是资源的名称

  • 将文件夹添加到项目中,并通过“现有项”将图像添加到这些文件夹中
  • XAML与此类似:
  • F6(构建)

  • “pack”名称空间代表什么?下面是关于packURI的信息:我已经有一段时间没有在应用程序中添加图像了。。。我可能在这里工作,但我认为您可能需要在WPF designer中显示图像之前构建应用程序。我现在无法测试它,但从上面的MSDN链接,对于引用的程序集,它说使用:“/ReferencedAssembly;component/Subfolder/ResourceFile.xaml”。其中“ReferencedAssembly”将是您的程序集名称。我写过这样的代码:“/MyProgram.Namespace;component/Resources/imagename.png”@wonea这是我的工作:pack://application:,,,/YourAppName;component/Resources/FileDialog.png“与生成操作“Resource”有一点不同:
    注意开头的正斜杠,这意味着在根文件夹中查找。如果xaml文件不在根目录下,这是必要的,因为没有正斜杠,它将在与xaml文件相同的目录中启动搜索。为我工作,谢谢。在文件的“属性”选项卡上,将BuildAction设置为“Resource”,确保资源设置为public:实际上,这似乎不适用于图像,因为资源使用的是System.Drawing.Bitmap