は通常、WPFのイメージソースはアセンブリ名を記述せずにWPFイメージソースを設定するにはどうすればよいですか?私は、アセンブリの名前を変更する必要がある場合
WpfApplication1;component/Untitled.png
しかし、何のようなものでしょうか?私はすべての画像ソースを変更する必要がありますか?
は通常、WPFのイメージソースはアセンブリ名を記述せずにWPFイメージソースを設定するにはどうすればよいですか?私は、アセンブリの名前を変更する必要がある場合
WpfApplication1;component/Untitled.png
しかし、何のようなものでしょうか?私はすべての画像ソースを変更する必要がありますか?
(1)を使用できます。プロジェクトとの関係:
<Image Source="/Untitled.png".../>
(2)この要素が定義されているXAMLファイルのパスからの相対:
<Image Source="Untitled.png".../>
しかし、画像が外部アセンブリ内に配置されている場合、あなたは、アセンブリ名を指定する必要があり、そうでない場合はWPFがそれを見つけることができる方法はありません。
私は、アセンブリを登録したカスタムマークアップ拡張であり、イメージ名を渡した画像マネージャを作成し、登録されたアセンブリのリストから画像を探し出します。アセンブリの名前が外部アセンブリのXAMLマークアップにあるという考えが嫌いなら、同様のことができます。
http://www.switchonthecode.com/tutorials/wpf-tutorial-fun-with-markup-extensionsはいい出発点です。
しかし、イメージが(Build Action = Resource'のように)同じアセンブリ内に埋め込まれている場合はどうなりますか? –
@Jader Dias - イメージが埋め込まれている場合(デフォルトでは)、相対パスは引き続き機能します。イメージが別のアセンブリに埋め込まれている場合は、アセンブリ名を指定する必要があります。 –
このような素敵なトリック!私はこの質問をチャンスのために見た。以前は、私は完全な "pack:///"仕様を使用しました... –