WPF でのリソースとしての画像の読み込み
WPF 開発では、簡単にアクセスして展開できるように、プロジェクトに画像をリソースとして埋め込みたいことがよくあります。ただし、コード内で画像ソースを動的に設定するのは難しい場合があります。
次のコードを使用してリソースから画像を読み込むときに問題が発生したとします。
<code class="language-csharp">Assembly asm = Assembly.GetExecutingAssembly(); Stream iconStream = asm.GetManifestResourceStream("SomeImage.png"); PngBitmapDecoder iconDecoder = new PngBitmapDecoder(iconStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); ImageSource iconSource = iconDecoder.Frames[0]; _icon.Source = iconSource;</code>
ストリームには画像データが含まれていますが、画像はまだ表示されません。解決策は、アセンブリからリソースを読み込むために特別に設計された URI スキームである Pack URI を使用することです。
パック URI を含む更新されたメソッドは次のとおりです:
<code class="language-csharp">Image finalImage = new Image(); finalImage.Width = 80; ... BitmapImage logo = new BitmapImage(); logo.BeginInit(); logo.UriSource = new Uri("pack://application:,,,/AssemblyName;component/Resources/logo.png"); logo.EndInit(); ... finalImage.Source = logo;</code>
この URI は、承認を「application:///」として指定し、その後にアセンブリの短縮名、リソース ファイルへのパス、およびコンマで置き換えられたスラッシュが続きます。また、イメージ リソースをビルド アクションとして「リソース」に設定してください。
パック URI を使用すると、WPF に埋め込みリソースを確実に確実に読み込むことができるため、画像をユーザー インターフェイスにシームレスに統合できます。
以上がWPF でリソースから画像を正しく読み込む方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。