sourcecode

XAML에서 이미지 리소스를 참조하는 방법

copyscript 2023. 4. 14. 22:01
반응형

XAML에서 이미지 리소스를 참조하는 방법

제가 넣었어요Image"Resources.resx"라는 프로젝트 리소스 파일에 저장된 이미지를 표시합니다.리소스 파일의 이미지 이름은 '검색'입니다.

제가 어떻게 해야 하는지 누가 좀 보여주시겠어요?

이미지가 리소스 폴더에 있고 빌드 작업이 리소스로 설정된 경우.다음과 같이 XAML의 이미지를 참조할 수 있습니다.

"pack://application:,,,/Resources/Search.png"

Resources 폴더 아래에 폴더 구조가 없고 응용 프로그램이라고 가정합니다.예를 들어 다음과 같습니다.

ImageSource="pack://application:,,,/Resources/RibbonImages/CloseButton.png"

[ Resources ]폴더에 [RibbonImages]라는 이름의 폴더가 있는 경우.

프로젝트의 아이콘 폴더에 이미지가 있고 빌드 작업이 "리소스"인 경우 다음과 같이 참조할 수 있습니다.

<Image Source="/Icons/play_small.png" />

그게 가장 간단한 방법이에요.프로젝트 파일이 없는 리소스 관점에서만 이 작업을 수행할 수 있는 유일한 방법입니다.

var resourceManager = new ResourceManager(typeof (Resources));
var bitmap = resourceManager.GetObject("Search") as System.Drawing.Bitmap;

var memoryStream = new MemoryStream();
bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Bmp);
memoryStream.Position = 0;

var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = memoryStream;
bitmapImage.EndInit();

this.image1.Source = bitmapImage;

리소스 파일을 사용하는 이점 중 하나는 리소스를 이름으로 액세스할 수 있기 때문에 리소스가 최신 상태로 유지되는 한 올바른 이미지가 표시될 수 있습니다.

이를 실현하기 위한 보다 깔끔한 접근방식을 다음에 제시하겠습니다.Resources.resx가 UI에 있다고 가정합니다.이미지의 네임스페이스를 다음과 같이 xaml에 네임스페이스 참조를 추가합니다.

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:UI="clr-namespace:UI.Images" 

다음과 같이 이미지 소스를 설정합니다.

<Image Source={Binding {x:Static UI:Resources.Search}} />여기서 'Search'는 리소스 이름입니다.

  1. "기존 항목"을 통해 프로젝트에 폴더를 추가하고 이미지를 추가할 수 있습니다.
  2. XAML은 다음과 같습니다.<Image Source="MyRessourceDir\images\addButton.png"/>
  3. F6(빌드)

언급URL : https://stackoverflow.com/questions/5552618/how-to-reference-image-resources-in-xaml

반응형