2012-04-06 12 views
0

私は、WinformsプロジェクトとWPFプロジェクトの両方で使用したいいくつかのpng、ビットマップ、アイコンを持っています。WPFとWinformsの間でグラフィックを共有する

私はwinformsのリソースを使い、WPFのリソースに満足しています。

両者が共通のリソースを共有している場所は何ですか?私の現在の気持ちは、WPFリソースアセンブリとWinformsリソースアセンブリを持つことですが、私が見たアプローチのどれも流動的に見えません。

ありがとう

答えて

2

私はWPFとWinformsの両方のコントロールを持つプロジェクトを持っています。このプロジェクトには、すべてのイメージを含むリソースフォルダがあります。実際には、相対パスを使用してディスクからロードするだけです。
プロジェクト名は「MyProjectと」であり、画像パスがプロジェクトフォルダ内に、「MyImages」という名前のフォルダで、自分のイメージ名は次のようにあなたがそれらをロードすることができます「MyImage.bmp」であると仮定すると:

は、 でのWinforms:

<Image Source="pack://application:,,,/MyProject;Component/MyImages/MyImage.bmp"> 

はそれが役に立てば幸いWPFで

new Bitmap(Assembly.GetExecutingAssembly().GetManifestResourceStream("MyProject.MyImages.MyImage.bmp") 

...

+0

はい、私はそれがないと思うが。私はどちらの人にもヘルパーを追加して、利用可能なリソースを自動的に確立するかもしれませんが、あなたの答えは私の心を安らぎにしています。ありがとう:) – Ian

1

Amittai Shapiraによる回答は、ビルドアクションが「組み込みリソース」に設定されている場合に機能します。あなたは、 "リソース" にアクションを構築設定する場合は、使用できます。

リサイズ:

Bitmap photo; 
var picUri = new Uri(@"pack://application:,,,/MyProject;component/MyImages/MyImage.bmp", UriKind.Absolute); 
var resourceInfo = Application.GetResourceStream(picUri); 

if (resourceInfo != null) 
{ 
    photo = new Bitmap(resourceInfo.Stream); 
} 

WPF:

<Image Source="MyImages/MyImage.bmp"/> 
関連する問題