我有以下目录结构
Project
\Images
+view.png
control.xaml
在控件中,我有一个由以下 XAML 定义的按钮:
<Button Click="Search"
Grid.Column="1"
Margin="0,5,5, 0"
HorizontalAlignment="Right">
<Button.Template>
<ControlTemplate TargetType="{x:Type Button}">
<Image Source="pack://application:,,,/images/view.png"
Width="16"
Height="16"
ToolTip="Search"
Cursor="Hand"
Opacity="0.8" />
</ControlTemplate>
</Button.Template>
</Button>
但是,这个包 URI 方法和“/images/view.png”都不起作用。据我了解,这与 this question 提出的问题相同。但是,我得到了同样的错误。令人困惑的是,在 Visual Studio 2008 中的设计器中,图像呈现正确,但在调用 InitializeComponent() 时,我得到:
Cannot convert string 'pack://application:,,,/images/view.png' in attribute 'Source' to object of type 'System.Windows.Media.ImageSource'. Cannot locate resource 'images/view.png'. Error at object 'System.Windows.Controls.ControlTemplate' in markup file 'RecapSpecEditControl;component/modaltreadgroupdatadialog.xaml' Line 61 Position 40.
我想也许有一个我必须声明的命名空间,但根据 msdn site 我相信我不必做这样的事情。
最佳答案
我实际上让这个工作,但不得不将我的源设置为“/ProjectName;component/images/view.png”因为我将 ProjectName 作为引用程序集,这与 Path: msdn 页面上的部分相同我在问题中引用了。
关于wpf - 打包 URI 和路径不解析 WPF 中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1874705/