에 로컬 파일의 상대에 나는 다음과 같은 프로젝트 구조가 있습니다URI 예를 들어 조립
Root\Core\Application.exe
Root\Modules\Assembly.dll
Root\Modules\Icons\Icon.png
내의 application.exe가 Assembly.dll를로드합니다. Assembly.dll에는 Image 컨트롤이있는 WPF UserControl이 포함되어 있습니다. Icon.png는 포함 된 리소스가 아니며 로컬 파일 (Build : Content)입니다.
나는 이미지 컨트롤의 소스 속성에 가능한 모든 URI를 시도하지만어떻게 URI가 같이해야합니까 등
<Image Source="Icons\Icon.png" />
<Image Source="pack://application:,,,/Icons\Icon.png" />
<Image Source="pack://application:,,,/Assembly;component/Icons/Icon.png" />
:-(이미지를 표시하지?
안녕하세요, 감사하지만, application.exe에서 XAML 파일 내의 어셈블리 경로까지의 상대 경로를 알 수 없습니다. 아마 "모듈"폴더가 다른 곳에 저장되어있을 수도 있습니다. 따라서 Assembly와 Icon.png 만 같은 폴더에 있고 Assembly의 UserControl에 Icon.png가 표시되어야합니다. 경로/URI는 XAML 코드에서 설정해야합니다. –
이것은 작동하지 않습니다. 나는 당신이 나의 첫번째 지위에서 볼 수있는 것처럼 그것을 이미 시도했다. 그리고 물론 Icon.png가 올바른 폴더에 존재합니다 .-- 나는 수동으로 어셈블리를로드하는 것과 아무런 관련이 없습니다. 테스트 솔루션을 만들었 기 때문에 거기에 Application과 ClassLibrary가 있고 참조를 설정했기 때문에 ClassLibrary에 직접 추가하고 MainWindow.xaml의 ClassLibrary에서 UserControl을 직접 추가했습니다. 모든 것이 동일한 출력 폴더에 있습니다. URI는 UserControl 및 Icon.png (파일로)가 포함 된 어셈블리에 대한 상대 경로 여야합니다. –
siteoforigin은 모든 것이 같은 폴더에있는 경우에만 작동합니다 (또는 응용 프로그램과 모듈 폴더 간의 상대 경로를 알 수 있습니다). Btw : Assembly.LoadFrom을 사용합니다. 어셈블리는 컴퓨터의 모든 곳에 저장할 수 있습니다. 그렇기 때문에 디자인 타임에 응용 프로그램에서 어셈블리로의 상대 경로를 알 수 없습니다. –