ローカライズを意図していないアプリケーションがあり、リソースが同じアセンブリにある場合、画像を参照するときにパック表記を使用する利点はありますか?
現在、同じアセンブリ内のビルド アクションが Resource に設定された Resource フォルダーにすべての画像があります。私はこのように言及しています(これは機能しています)
<Image Source="/Resources/Image1.png"/>
ローカライズを意図していないアプリケーションがあり、リソースが同じアセンブリにある場合、画像を参照するときにパック表記を使用する利点はありますか?
現在、同じアセンブリ内のビルド アクションが Resource に設定された Resource フォルダーにすべての画像があります。私はこのように言及しています(これは機能しています)
<Image Source="/Resources/Image1.png"/>
厳密に言えば、あなたは既にパック URI を使用しており、相対 URI を使用しているだけです。
件名に関する MSDN ドキュメントで説明されているように、Pack URI 表記の目的は、
これらのタイプのファイルを識別してロードするための一貫したメカニズムを提供する
以下を含むさまざまな場所から。
- 現在のアセンブリ。
- 参照されたアセンブリ。
- アセンブリに相対的な位置。
- アプリケーションの元のサイト。
この種の一貫性を提供するために、URI スキームは絶対 URI と相対 URI の両方を宣言する方法を指定します。
デフォルトでは、相対パック URI は、参照を含むマークアップまたはコードの場所に相対的であると見なされます。ただし、先頭にバックスラッシュが使用されている場合、相対パック URI 参照は、アプリケーションのルートに対して相対的であると見なされます。
絶対パック URI と相対パック URI の利点について質問している場合は、その質問に答えることができるのはあなただけです。絶対 URI には、参照している XAML を移動しても、常に同じ場所に解決されるという利点があります。相対 URI には、相対パスを壊すことなく、XAML とそれに関連するリソースを 1 つの単位として移動できるという利点があります。
参照されるリソースが常に XAML ソースと同じアセンブリにあることが確実な場合は、おそらく相対パスが適しています。XAML を静的リソースから分離する必要があると思われる場合は、絶対 URI を使用して早期に実行し、機能させるべきであるという良い議論があります。