5

BitmapImage クラスを使用して WPF に画像を読み込んでいます。私のコードは、UriSource の絶対パスを指定すると完全に機能しますが、相対パスを使用しようとすると機能しません。

私のXAMLは次のとおりです。

<Image Width="50" Name="MemberImage" HorizontalAlignment="Left">
    <Image.Source>
        <BitmapImage DecodePixelWidth="50" UriSource="questionmark.jpg" />
    </Image.Source>
</Image>

questionmark.jpg がプロジェクトに追加され、[リソース] の [ビルド アクション] と [出力ディレクトリにコピー] が [常にコピー] に設定されます。表示されるエラーは、「ファイル [ファイル名] はプロジェクトの一部ではないか、その 'ビルド アクション' プロパティが 'リソース' に設定されていません」です。これは、UriSource の絶対パスを使用すると機能しますが、明らかに機能しません。

XAML で UriSource をどのように定義すればよいですか?

4

3 に答える 3

11

リソースに入ったら、イメージを出力ディレクトリにコピーする必要はないと思います。

正しい指定方法は

<BitmapImage 
    x:Key  = "Logo"
 UriSource = "pack://application:,,,/ApplicationNamespace;component/Images/App/image.png"  
/>

交換するだけ

ApplicationNamespaceアプリケーションの名前空間で

Images/App/image.pngプロジェクト内の画像パス

于 2013-07-10T16:10:25.343 に答える
2

プロパティに次のオプションがある画像ファイル
Build Action=Content
出力ディレクトリにコピー=Copy if newer

<BitmapImage x:Key="QuestionMark" UriSource="pack://siteoforigin:,,,/questionmark.png"/>


参照:
Xaml - Bitmap UriSource - 絶対パスは機能しますが、相対パスは機能しません。なぜですか?

于 2015-05-06T19:39:19.880 に答える
0

コンピューターで問題を再現できません:

  • [プロジェクト] メニューの [既存の項目を追加] を選択して jpg を追加します
  • 次に、Build Actio を Resource に設定し、Copy to Output directory を always に設定します。
  • 私のXAMLは同じです。

.exe を移動して jpg の名前を変更した後でも、ここでは完全に機能します。他の何かがあなたを噛んでいるに違いありません!

于 2010-07-05T20:33:55.013 に答える