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 に答える