打包URI和路径不解析WPF中的图像

Ant*_*tts 4 wpf xaml image pack-uri

我有以下目录结构

Project
\Images
 +view.png
control.xaml
Run Code Online (Sandbox Code Playgroud)

在控件中我有一个由以下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>
Run Code Online (Sandbox Code Playgroud)

但是,这个包URI方法和"/images/view.png"都不起作用.据我了解,这个问题提出了同样的问题.但是,我得到了同样的错误.令人困惑的是,在Visual Studio 2008中的设计器中,图像呈现正确,但在调用InitializeComponent()调用时,我得到:

无法将属性"Source"中的字符串"pack:// application:,,,/images/view.png"转换为"System.Windows.Media.ImageSource"类型的对象.找不到资源'images/view.png'.标记文件'RecapSpecEditControl; component/modaltreadgroupdatadialog.xaml'中对象'System.Windows.Controls.ControlTemplate'出错.第61行位置40.

我想也许有一个命名空间我必须声明但是根据msdn网站我相信我不必做那样的事情.

Ant*_*tts 9

我实际上让它工作,但必须将我的源设置为"/ProjectName; component/images/view.png"因为我将ProjectName作为引用的程序集,这与msdn页面上的Path:部分相同我引用了这个问题.


Ben*_*ier 6

将"view.png"的构建操作设置为"资源"而不是"内容",此问题应该消失.我能够以这种方式重现您的问题,并且在设置为资源时它可以正常工作.