web-dev-qa-db-ja.com

WPF-リソースとして画像をインポート

私は最近WinFormsを教えていますが、今ではより近代的なWPFに切り替えました。

現時点で混乱しているのは、画像を使用していることだけです。これで、WinFormsでリソースとしてインポートし、/ bin/Debugフォルダーでコンパイルされたときにイメージが引き続き機能します。

WPFでこれを機能させる方法がわかりません。画像を/Projects/AppName/images/に保存し、アプリケーションを実行すると/Projects/AppName/bin/Debugにコンパイルされるため、画像が読み込まれません。デバッグモードで実行します。

Imagesフォルダーのコピーを作成して、アプリケーションがコンパイルされた場所に置くだけでいいですか?または、別の方法があります。画像を表示するコードは次のとおりです。

<Image Width="300">
    <Image.Source>
        <BitmapImage DecodePixelWidth="300" UriSource="/images/jamsnaps-dark.png" />
    </Image.Source>
</Image>
27
Martyn Ball
  • Visual Studioプロジェクトにフォルダー(例:images)を作成します。
  • そのフォルダーに画像ファイルを追加します。
  • Build ActionからResource([プロパティ]ウィンドウで、 この回答 の2番目の画像を参照)。

次に、すでに行ったようにUriSourceプロパティを記述します。

UriSource="/images/jamsnaps-dark.png"

そのURIは実質的に Resource File Pack URI で、WPFによってプレフィックスが自動的に追加されます。

48
Clemens
  1. プロジェクトディレクトリに画像を追加します
  2. ソリューションエクスプローラーで、画像を右クリックして[Include in Project

ビルドアクションは、デフォルトでResourceに設定する必要があります。

その後、ルートに関連するイメージパスの使用を開始できます。 images/text.jpgimagesというフォルダーに配置した場合。

1
codeafin

2つのオプション:

1)bin/Debugから出て、../.. /でアプリケーションフォルダーに移動し、次にイメージに移動します。

  <Image>
      <Image.Source>
           <BitmapImage  UriSource="../../images/jamsnaps-dark.png" />
      </Image.Source>
   </Image>

2)イメージファイルのコンテキストメニューのプロパティからイメージをコンテンツとしてコンパイルし、コンパイルするとデバッグに配置されます。プロパティでローカルをコピーするように指示する必要があるかどうか覚えていません(今はコンピューターの近くにいないのでチェックできません。

0
eran otzap