更改 WPF window 图标
Changing WPF window icons
我有一堆图标作为资源。设法更改 MainWindow
图标没有问题,但对其他人做同样的事情会给我这个错误:
Could not find a part of the path 'C:\Program Files (x86)\Microsoft Visual Studio19\Community\Common7\IDE\resources\add.ico'
我在 XAML 文件的顶部有这个:
Icon="resources/add.ico"
所以 - 由于某种原因,它在 MainWindow.xaml
中搜索资源文件夹中的资源,但在其他 window 中,它决定在 VS 文件夹中搜索(原因不明)。我该如何解决这个问题?
我建议您使用使用 WPF Pack-URI 的绝对路径。
这些帖子解释得很好:
对你来说
pack://application:,,,/resources/add.ico
它的基本语法是pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml
如 MSDN 文章所述
如果您将在多个地方使用图像,那么值得将图像数据仅加载一次到内存中,然后在所有 Image
个元素之间共享。
为此,在某处创建一个 BitmapSource
作为资源:
<BitmapImage x:Key="MyImageSource" UriSource="../Media/Image.png" />
然后,在您的代码中,使用如下内容:
<Image Source="{StaticResource MyImageSource}" />
就我而言,我发现我必须将 Image.png
文件设置为具有 Resource
的构建操作,而不仅仅是 Content
。这会导致图像在编译的程序集中携带。
有关详细信息,请查看 HERE
我有一堆图标作为资源。设法更改 MainWindow
图标没有问题,但对其他人做同样的事情会给我这个错误:
Could not find a part of the path 'C:\Program Files (x86)\Microsoft Visual Studio19\Community\Common7\IDE\resources\add.ico'
我在 XAML 文件的顶部有这个:
Icon="resources/add.ico"
所以 - 由于某种原因,它在 MainWindow.xaml
中搜索资源文件夹中的资源,但在其他 window 中,它决定在 VS 文件夹中搜索(原因不明)。我该如何解决这个问题?
我建议您使用使用 WPF Pack-URI 的绝对路径。 这些帖子解释得很好:
对你来说
pack://application:,,,/resources/add.ico
它的基本语法是pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml
如 MSDN 文章所述
如果您将在多个地方使用图像,那么值得将图像数据仅加载一次到内存中,然后在所有 Image
个元素之间共享。
为此,在某处创建一个 BitmapSource
作为资源:
<BitmapImage x:Key="MyImageSource" UriSource="../Media/Image.png" />
然后,在您的代码中,使用如下内容:
<Image Source="{StaticResource MyImageSource}" />
就我而言,我发现我必须将 Image.png
文件设置为具有 Resource
的构建操作,而不仅仅是 Content
。这会导致图像在编译的程序集中携带。
有关详细信息,请查看 HERE