我有一个主WPF应用程序,它引用了我创建的WPF用户控件库。在库中,我有一个用户控件和一个图像文件夹(用户控件使用的图像)。以下是我在用户控件中使用的XAML的一部分:
<UserControl x:Class="Alstom.UserControls.MainToolbar"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Alstom.UserControls"
mc:Ignorable="d"
d:DesignHeight="120" d:DesignWidth="3440">
<UserControl.Resources>
<Image x:Key="Subway" Source="/images/MainToolbar/Subway.png"/>
<Image x:Key="Globe" Source="/images/MainToolbar/Globe.png"/>
<Image x:Key="Gavel" Source="/images/MainToolbar/Gavel.png"/>
<Image x:Key="Clipboard" Source="/images/MainToolbar/Clipboard.png"/>
<Image x:Key="EllipsisVertical" Source="/images/MainToolbar/EllipsisVertical.png"/>
<Image x:Key="Check" Source="/images/MainToolbar/Check.png"/>
<Image x:Key="Bell" Source="/images/MainToolbar/Bell.png"/>
用户控件有我写的按钮,如下所示(注意我将Content属性定义为StaticResource:
<Button x:Name="button" Grid.Row="1" Grid.Column="0" Content="{StaticResource Subway}" HorizontalAlignment="Center" VerticalAlignment="Center" Width="48" Height="48"/>
当我双击用户控件时,在设计器中,我会看到按钮上的图像。
但是我在我的解决方案中创建了一个主WPF应用程序,它引用了外部程序集,如下所示:
<Window x:Class="MainToolBar.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:myMainToolbar="clr-namespace:Alstom.UserControls;assembly=Alstom.UserControls"
mc:Ignorable="d"
Title="MainWindow" Height="auto" Width="3440" ScrollViewer.VerticalScrollBarVisibility="Visible">
<Grid>
<myMainToolbar:MainToolbar HorizontalAlignment="Left" VerticalAlignment="Top"/>
</Grid>
当我双击MainWindow.xaml时,我没有看到设计器中按钮上的图像,也没有看到我运行它时的图像。
在运行时显示图像需要做什么?在用户控件项目中,图像具有Build Action = Resource。但我试图将其中一个更改为Embedded Resource,但仍然无效。
我做错了什么?
答案 0 :(得分:1)
尝试将图片的构建操作设置为资源并使用包URI:
<Image x:Key="Subway" Source="pack://application:,,,/YourAssemblyName;component/images/MainToolbar/Subway.png"/>
不要忘记将“YourAssemblyName”更改为程序集/ WPF用户控件库项目的实际名称。
在WPF中打包URI: https://msdn.microsoft.com/en-us/library/aa970069(v=vs.110).aspx