我在我的资源字典中声明一个图像,然后在用户控件中显示如下:
ResourceDictionary.xaml(我在这里使用一种样式,因为我计划在用户更改他们查看的内容时更新图像,即公司、员工等)
<ImageSource x:Key="CompanyIcon">Images/company_128.png</ImageSource>
<Style x:Key="QuickInfoIcon" TargetType="{x:Type Image}">
<!-- Default Value -->
<Setter Property="Source" Value="{StaticResource CompanyIcon}" />
</Style>
“Images”文件夹是“Assests”的子文件夹。“Assests”文件夹包含我的“ResourceDictionary.xaml”文件,我知道路径是正确的,因为如果我将路径更改为“../Images/company_128.png”之类的东西,则会出现设计器错误
QuickinfoView.xaml
<UserControl x:Class="SidekickAdmin.Views.QuickInfoView"
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"
mc:Ignorable="d" d:DesignWidth="500" Height="100"
Background="BlanchedAlmond">
<!-- Setup a grid to house the icon and the info -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" Name="InfoIcon">
<Image Style="{StaticResource QuickInfoIcon}" Height="50" Width="50"/>
</Grid>
</Grid>
</UserControl>
在 Visual Studio 2012 设计器中查看布局时,一切都显示正确,但是当我运行程序时,我收到错误“发生 XamlParseException:无法从文本‘Images/employee_128.png’创建‘ImageSource’。” 在带有 ImageSource 的 ResourceDictionary 行上。
如果我将 ImageSource 更改为使用不同的图像,它会在 VS2012 设计器中按预期更新,但在尝试运行程序时会出现相同的错误。
我已在 Resource.resx 文件上将 Build Action 设置为“Embedded Resource”,但这并没有解决问题。
关于我尝试运行该程序时为什么会收到 XamlParseException 的任何想法?
作为一个附带问题,当我在我的程序中合并图像时,图像本身(文件)是否应该在 bin/debug 文件夹中的某个地方可见,或者此信息是否隐藏在 bin/debug 中的某个文件中?