3

pngイメージをリソースとして使用する WPF アプリケーションがあります。これらの画像はcsproj、次のプロパティを持つ「リソース」という名前のフォルダーの「リンクとして」に追加されます

  • ビルド アクション: リソース
  • 出力ディレクトリにコピー: コピーしないでください

私のxamlファイルでは、次のように参照されています。

<Image Source="foo.png" />

Windows 7 で Visual Studio 2010 を使用してビルドおよび実行するには、これで十分でした。各xaml画像参照をこれに変更すると、画像表示されます。

<Image Source="resources/foo.png" />

では、これに影響する Windows 7 と Windows 8 のインストールの間で何が変わったのでしょうか? また、アプリケーションを Windows 7 と 8 の両方で正常にビルドおよび実行できるようにするには、どのようなアプローチを取ることができますか?

4

1 に答える 1

1

ファイルは「resources」というフォルダーにリンクとして追加されるとのことでしたが、以前は修飾パスなしでどのように機能したかわかりません。技術的には、すべての相対 URI は、それを読み込もうとしているページに相対的な「パック」URI です。フレームワークのバージョン間で相対的なルールが変更されたとは思えませんが、次の 3 つのオプションがあると思います。

  1. これが両方のバージョンで機能する場合は、「リソース」プレフィックスを含めます。
  2. 相対 Uris を使用し、システムに依存して変換する代わりに、pack Uri で明示的に取得します (詳細はこちら)。
  3. アプリケーションを特定のランタイム バージョンで実行するように強制します (詳細はこちら)。
于 2012-10-09T20:22:56.477 に答える