WPF引用项目图片资源

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版权协议,转载请附上原文出处链接和本声明。