3

我有以下 XAML 代码:

<ListBox ItemsSource="{Binding Languages}">  
    <ListBox.ItemTemplate>  
        <DataTemplate>  
            <StackPanel>  
                <Image Source="{Binding LanguageIcon}" />  
                <Label Content="{Binding LanguageName}" />  
            </StackPanel>  
        </DataTemplate>  
    </ListBox.ItemTemplate>  
</ListBox>  

在模型类中:

class Language {  
    public string LanguageName;  
    public ImageSource LanguageIcon;  
}  

我的模型视图类包含:

public List<Language> Languages;

其中充满:

Languages.Add(new Language("A",new BitmapImage(new Uri("Resources/a.ico",
    UriKind.Relative))));  
Languages.Add(new Language("B",new BitmapImage(new Uri("Resources/b.ico",
    UriKind.Relative))));  

当我运行项目时,我的所有语言名称都显示在列表中,但图标不显示...为什么会发生这种情况,如何确保显示我的图标?(我确信资源确实存在,因为 BitmapImages 不会抛出错误)

4

2 回答 2

5

尝试将您的 Uri 路径更改为...

"../Resources/a.ico"

编辑

如果您尝试在不同的程序集中引用图像,请尝试使用pack 语法...

pack://application:,,,/ReferencedAssembly;component/Resources/a.ico

...ReferencedAssembly包含您的图像的程序集在哪里。

于 2010-12-15T16:07:51.527 回答
0

好吧,我得到了错误原因,但仍然没有解决方案 -

根本找不到“Resources/a.ico” - 所以它不再是 XAML 问题

但正是在这种情况下,a.ico 位于另一个大会中。所以现在的问题是:如何到达这个图标?

现在我使用了pack://application:,,,/MyApp.ExtAssembly;/Resources/a.ico- 但它总是抛出一个找不到它的异常......

于 2010-12-15T18:44:27.943 回答