这是我的XAML
代码
<Button HorizontalAlignment="Left" Margin="185,0,0,0" Width="20" BorderBrush="{x:Null}" ToolTip="Search" Foreground="#FFB9B9B9">
<Button.Background>
<ImageBrush Stretch="UniformToFill" ImageSource="../Images/gray-classic-search-icon.png"/>
</Button.Background>
</Button>
这在运行项目中给出了这个错误:
类型的第一次机会异常 &#39; System.Windows.Markup.XamlParseException&#39;发生在 PresentationFramework.dll
其他信息:&#39;提供价值 &#39; System.Windows.Baml2006.TypeConverterMarkupExtension&#39;扔了一个 。例外&#39;行号&#39; 34&#39;和行位置&#39; 33&#39;。
造成这种情况的原因是什么?如何解决?
答案 0 :(得分:1)
在WPF应用程序中加载来自相对路径的图像不是理想的方法,因为在运行时,图像文件需要位于恰好相对的位置,无论是..\Images\
还是..\..\Images\
。
您应该将图像文件的构建操作设置为Resource
(如图here所示)并加载它:
<ImageBrush ImageSource="/Images/gray-classic-search-icon.png" .../>
这是WPF Resource File Pack Uri的缩写形式:
<ImageBrush ImageSource="pack://application:,,,/Images/gray-classic-search-icon.png" .../>
答案 1 :(得分:0)
更改您的代码
<Button HorizontalAlignment="Left" Margin="185,0,0,0" Width="20" BorderBrush="{x:Null}" ToolTip="Search" Foreground="#FFB9B9B9">
<Button.Background>
<ImageBrush Stretch="UniformToFill" ImageSource="../../Images/gray-classic-search-icon.png"/>
</Button.Background>
</Button>