私は、WinformsプロジェクトとWPFプロジェクトの両方で使用したいいくつかのpng、ビットマップ、アイコンを持っています。WPFとWinformsの間でグラフィックを共有する
私はwinformsのリソースを使い、WPFのリソースに満足しています。
両者が共通のリソースを共有している場所は何ですか?私の現在の気持ちは、WPFリソースアセンブリとWinformsリソースアセンブリを持つことですが、私が見たアプローチのどれも流動的に見えません。
ありがとう
私は、WinformsプロジェクトとWPFプロジェクトの両方で使用したいいくつかのpng、ビットマップ、アイコンを持っています。WPFとWinformsの間でグラフィックを共有する
私はwinformsのリソースを使い、WPFのリソースに満足しています。
両者が共通のリソースを共有している場所は何ですか?私の現在の気持ちは、WPFリソースアセンブリとWinformsリソースアセンブリを持つことですが、私が見たアプローチのどれも流動的に見えません。
ありがとう
私は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")
...
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"/>
はい、私はそれがないと思うが。私はどちらの人にもヘルパーを追加して、利用可能なリソースを自動的に確立するかもしれませんが、あなたの答えは私の心を安らぎにしています。ありがとう:) – Ian