본문 바로가기
프로그래밍

wpf 에서 이미지 경로(Source) 설정하기

by ictlab 2023. 3. 31.

 

WPF에서 이미지의 Source 속성을 설정할 때 파일 경로를 지정하는 방법에는 상대 경로와 절대 경로 두 가지가 있습니다.

첫 번째 예제에서는 상대 경로를 사용하여 이미지의 Source를 설정하고 있습니다.

<Image Width="16" Height="16" Source="Images/Component.png" Margin="1,0,3,0" />




상대 경로를 사용할 경우, 이미지 파일의 경로는 현재 XAML 파일의 위치를 기준으로 합니다. 즉, 현재 XAML 파일과 같은 폴더 내의 Images 폴더에 있는 Component.png 파일을 참조하게 됩니다.

두 번째 예제에서는 절대 경로를 사용하여 이미지의 Source를 설정하고 있습니다.


<Image Width="16" Height="16" Source="/Images/Component.png" Margin="1,0,3,0" />


절대 경로를 사용할 경우, 이미지 파일의 경로는 프로젝트 루트를 기준으로 합니다. 이 경우 프로젝트 루트 폴더 내의 Images 폴더에 있는 Component.png 파일을 참조하게 됩니다.

요약하면, 첫 번째 예제는 현재 XAML 파일의 위치를 기준으로 이미지 파일을 찾는 상대 경로를 사용하고, 두 번째 예제는 프로젝트 루트를 기준으로 이미지 파일을 찾는 절대 경로를 사용합니다.





이 경로는 WPF에서 이미지의 Source 속성을 설정할 때 사용되는 Pack URI라고 불리는 특수한 형식의 URI입니다. 이 형식은 리소스를 어셈블리 내에서 참조할 수 있도록 합니다.


Source="/LibXMachineEditor;component/Images/Component.png"


이 URI의 구성 요소를 살펴보겠습니다.

/ : 절대 경로를 나타냅니다. 프로젝트 루트를 기준으로 파일 경로를 찾습니다.
LibXMachineEditor : 참조하는 어셈블리의 이름입니다. 여기서는 "LibXMachineEditor"이라는 이름의 어셈블리를 참조하고 있습니다.
;component : 리소스가 참조하는 어셈블리 내의 컴포넌트로 정의되어 있다는 것을 나타냅니다. 이 키워드가 포함되면, WPF는 리소스가 현재 어셈블리가 아닌 다른 어셈블리에 포함되어 있다고 판단합니다.
/Images/Component.png : 어셈블리 내의 리소스 경로입니다. 이 경우 "Images" 폴더 내의 "Component.png" 파일을 참조하게 됩니다.
이렇게 설정된 Source 속성은 "LibXMachineEditor" 어셈블리 내의 "Images" 폴더에 있는 "Component.png" 파일을 참조합니다. 이 방법은 다른 어셈블리에 포함된 리소스를 사용할 때 유용합니다.