2017-12-04 3 views
0

私のWPFアプリケーションでは、Visual Studioで自分のプロジェクトにいくつかのイメージを追加し、ビルドアクションを変更しました。そして、彼らは働く。 問題は、画像フォルダに新しい画像を追加したい場合です。その後、私は.exeファイルを起動し、アプリケーションはこれらの新しい画像を見ることができません。 解決方法WPF - .exeファイルから新しいイメージを使用する

private void ShowImage(Button button) 
     { 
      string buttonName = button.Name; 
      string path = [email protected]"Images/{buttonName}.png"; 

      Image image = new Image(); 
      image.Source = new BitmapImage(new Uri(path, UriKind.Relative)); 
      button.Content = image; 
     } 
+1

あなたが設定し、どのようにされているビルドアクションは何ですかあなたのファイルを読み込むと、いくつかのコードスニペットを共有することができます。 –

+0

ビルドアクション:内容 出力ディレクトリにコピー:常にコピー 画像をボタンのコンテンツとして設定するメソッドを追加しました。 コンパイルする前にプロジェクトに画像を追加するとすべてうまく動作します。しかし、私は "手動で"再びコンパイルせずにフォルダに画像を追加したい。 –

+0

新しい画像ファイルを実際の出力ディレクトリにコピーしますか? 'bin/Debug/Images /'または 'bin/Release/Images /'?イメージファイル名がボタン名のいずれかと一致する場合は、それが動作するはずです。 – Clemens

答えて

-1

私はあなたの質問を理解していれば、私はあなたが探している答えはそうのようになりたいコンポーネントの参照であると思う:

private void ShowImage(Button button) 
    { 
     string buttonName = button.Name; 
     string path = "/MyProject;component/Images/{buttonName}.png"; 

     Image image = new Image(); 
     image.Source = new BitmapImage(new Uri(path, UriKind.Relative)); 
     button.Content = image; 
    } 
+0

[Pack URI](https://docs.microsoft.com/en-us/dotnet/framework/wpf/app-development/pack-uris-in-wpf)の背後にあるコードで、これが必要であることに注意してください適切な接頭辞、 'pack:// application:,,,'または 'pack:// siteoforigin:,,,'で修飾されています。また、 'UriKind.Relative'では動作しません。 – Clemens

関連する問題