我试图给我的图标文件一个路径,但它显示错误?

时间:2014-01-28 05:48:11

标签: c# wpf mvvm

<Window x:Class="AFIC.View.WizardDialog"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:view="clr-namespace:AFIC_Controller.View"
    xmlns:res="clr-namespace:AFIC_Controller.Resources"
    Title="{x:Static res:Strings.WizardWelcomeWindow_Title}"
    ShowInTaskbar="True"
    Width="800"
    Height="600"
    WindowStartupLocation="CenterScreen"
    WindowStyle="SingleBorderWindow"
    BorderBrush="#003B7B"
    BorderThickness="0"
    ResizeMode="NoResize"
    Icon="/AFIC_Controller;component/Resources/Images/att_icon.ico"
    >

<view:WizardView Loaded="WizardView_Loaded_1"/>


</Window>

我为我的图标文件提供路径为Icon =“/ AFIC_Controller; component / Resources / Images / att_icon.ico” 但调试后显示错误“错误1无法找到路径的一部分'C:\ AFIC_Controller; component \ Resources \ Images \ att_icon.ico'

3 个答案:

答案 0 :(得分:1)

确保项目中包含Icon文件,并将该图标文件的 Build Action 更改为Resources。对于构建操作,请转到该文件的属性。

答案 1 :(得分:0)

通过visual studio或您使用的任何IDE将att_icon.ico添加到Images文件夹中。复制和粘贴不起作用。

答案 2 :(得分:0)

看看你的代码,我注意到了一些事情:

<Window x:Class="AFIC.View.WizardDialog"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:view="clr-namespace:AFIC_Controller.View"
    xmlns:res="clr-namespace:AFIC_Controller.Resources"
    Title="{x:Static res:Strings.WizardWelcomeWindow_Title}"
    ShowInTaskbar="True"
    Width="800"
    Height="600"
    WindowStartupLocation="CenterScreen"
    WindowStyle="SingleBorderWindow"
    BorderBrush="#003B7B"
    BorderThickness="0"
    ResizeMode="NoResize"
    Icon="/AFIC_Controller;component/Resources/Images/att_icon.ico"
    >

此类似乎位于名为AFIC.View的名称空间中,但您尝试从AFIC_Controller名称空间访问图像。尝试从引用的程序集访问内容文件时,需要使用以下语法:

参考装配资源文件

编译到引用的程序集中的资源文件的pack URI使用以下权限和路径:

权限:application:///。

路径:编译为引用的程序集的资源文件的名称。路径必须符合以下格式:

AssemblyShortName [;版本] [;公钥];成分/路径

AssemblyShortName :引用的程序集的短名称。

;版本[可选] :包含资源文件的引用程序集的版本。当加载两个或多个具有相同短名称的引用程序集时,将使用此方法。

; PublicKey [可选] :用于对引用的程序集进行签名的公钥。当加载两个或多个具有相同短名称的引用程序集时,将使用此方法。

; component :指定所引用的程序集是从本地程序集引用的。

/ Path :资源文件的名称,包括其路径,相对于引用的程序集的项目文件夹的根目录。

所以猜测你的正确路径,你可以试试这个:

pack://application:,,,/AFIC_Controller;component/Resources/Images/att_icon.ico

如果仍然无效,请查看MSDN上Pack URIs in WPF页面中的众多示例...其中一个必须符合您的情况。