在 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>
儘管流包含影像數據,但影像仍不可見。解決方案在於使用 Pack URI,這是一種專門用於從程式集中載入資源的 URI 方案。
以下是一種包含 Pack 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:///”,後面接著程式集短名稱、資源檔案的路徑以及用逗號替換的斜線。此外,請確保將圖像資源設為「資源」作為其生成操作。
使用 Pack URI 可確保可靠地載入 WPF 中的嵌入式資源,讓您可以將映像無縫整合到使用者介面中。
以上是如何在WPF中正確載入資源中的圖片?的詳細內容。更多資訊請關注PHP中文網其他相關文章!