WPF引用图片资源的方式有很多种,分不同项目之间图片的引用、Xaml和代码的引用等,我们的测试项目如下,需要将两个项目中的logo.png属性中的 Build Action
设为Resource
Xaml如下
<Window x:Class="ImageResource.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ImageResource"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Image x:name="logoImage"/>
</Grid>
</Window>
1. 引用本项目的图片资源
在xaml中使用相对路径, 这也是最简单一种
<Image x:name="logoImage" Source="/Icon/logo.png"/>
当然,也可以声明具体是本项目引用,这里是ImageResource
<Image x:name="logoImage" Source="pack://application:,,,/ImageResource;component/Icon/logo.png"/>
<Image x:name="logoImage" Source="ImageResource;component/Icon/logo.png"/>
在代码中引用,需要将资源转换为ImageSource
logoImage.Source = (System.Windows.Media.ImageSource)(new System.Windows.Media.ImageSourceConverter()).ConvertFrom(newUri(@"pack://application:,,,/ImageResource;component/Icon/logo.png"));
2. 引用其他项目中的图片资源
Xaml中必须声明其他项目名称,这里是ImageResource2
<Image x:name="logoImage" Source="pack://application:,,,/ImageResource2;component/Icon/logo.png"/>
代码中也是一样
logoImage.Source = (System.Windows.Media.ImageSource)(new System.Windows.Media.ImageSourceConverter()).ConvertFrom(newUri(@"pack://application:,,,/ImageResource2;component/Icon/logo.png"));
?
版权声明:本文为DynastyRumble原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。