2012-04-25 10 views
0

.exeが配置されているディレクトリを基準にしたディレクトリにイメージが表示されます。WPF相対位置からのイメージを表示

project 
- data 
-- logo //<-- that's where the image is located 
-bin  //<-- that's where the .exe is in 

デフォルトの画像が.exeファイルに含まれなければならないが、ダイアログを表示するには、\データ\ロゴディレクトリが最初にチェックする必要があり、指定されたファイル名の画像が1を使用する必要があることが発見できた場合.exeの中にあるものの代わりに表示するために。

これを行う方法に関するアイデアはありますか?

おかげで、

tabina

答えて

1

使用pack URI

pack://application:,,,/ReferencedAssembly;component/data/logo/image.png 
0

彼はexeファイルへのフォルダの相対を要求したように、私は(彼はロゴがファイルシステム内に配置する必要があることをお勧め例:c:¥program files¥MyApp¥data¥logo)。だから私は、ファイルが存在するかどうかを確認します

File.Exists("/data/logo/logo.png") 

もしfalseを返すと、埋め込みリソースを読み込むことができます。

//編集

あなたはVisual StudioのIDEにこのスニペットを使用する場合は、パスは、私が今やっていることはこれはかなりうまく機能

// set the logo 
    string path = Environment.CurrentDirectory + "\\data\\logo\\logo.gif"; 
    var uri = new Uri(path, UriKind.Absolute); 
    try 
    { 
    this.myImg.Source = new BitmapImage(uri); 
    } 
    catch (Exception e) 
    { 
    this.myImg.Source = new BitmapImage(new Uri(@"pack://application:,,,/myAssemblyName;component/Images/logo.gif")); 
    } 

ある

<Project directory>/bin/debug/data/logo 
0

に位置していますしかし、これについて私が気に入らないのは、すべてがコードビハインドで書かれているということです。私はむしろそれをより再利用できるようにしたいと思う。 テンプレートにすべてを入れて、それをビューボックス/画像に適用する方法はありますか?

おかげで、あなたがバウンドプロパティ(文字列)の値を取り、あなたのコードを実行コンバータを作成することができます

tabina

+0

。 –

関連する問題