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를 사용하는 것입니다.
다음은 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:///"으로 지정하고 그 뒤에 어셈블리 짧은 이름, 리소스 파일 경로, 쉼표로 대체된 슬래시가 옵니다. 또한 빌드 작업으로 이미지 리소스를 "resource"로 설정해야 합니다.
Pack URI를 사용하면 WPF에 포함된 리소스를 안정적으로 로드할 수 있으므로 이미지를 사용자 인터페이스에 원활하게 통합할 수 있습니다.
위 내용은 WPF의 리소스에서 이미지를 올바르게 로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!