0
아니요, 팩 URI에 관한 또 다른 질문이 아닙니다. :-)외부 리소스 DLL에 저장된 이미지
브랜딩 데이터를 저장하는 응용 프로그램 외부에 리소스 DLL이 있습니다. 그것은 (각 DLL에 대해 따라서, 노트 원본 이미지 파일 이름이 각 브랜드 다를 수 있음)의 ResourceDictionary
에 BitmapImage
은 저장 : 주요 응용 프로그램에서
<BitmapImage x:Key="Logo" UriSource="Resources/changing-vendorname.png" />
, 나는 그것에서 다양한 자원을 외부 DLL을 읽어 획득 공급 업체 로고를 inlcuding :이
VendorLogo
변수를 검토 할 때는
Assembly.LoadFrom(BrandDllPath);
var dict = new ResourceDictionary();
dict.Source = new Uri("pack://application:,,,/BrandDll;component/Themes/Generic.xaml");
var VendorLogo = (BitmapImage)dict["Logo"];
, 그것은 BitmapImage
이 예상대로 포함되어 있습니다. 그래도 Image
컨트롤에 표시하고 싶을 때 :
Image.Source = VendorLogo;
나는 아무것도 얻지 못합니다. 오류 메시지가 나타나지 않고 아무 것도 표시되지 않습니다.
Application.Current.Resources["Logo"] = (BitmapImage)dict["Logo"];
및 XAML에서 사용하려고 :
<Image Source="{DynamicResource Logo}" />
나는 다른 많은과 같은 일을 내가 사용 내 자신의 사이에서 리소스를 넣어 경우
사실, 같은 일이 발생 리소스, 문자열, 색상 (실제로 응용 프로그램을 테마로), 모든 것은 작동하지만 이미지는 제외됩니다.
당신은 무엇을 넣을 경우 UriSource = "pack : // application : ,,,/BrandDll; component/Resources/vendorname.png"와 같은 원본 URI의 어셈블리 이름을 반환합니다. – Clemens
아니, 그래서 내가 시작한 문장으로 시작했다. :-) 나는 원래 이름을 모른다. 수백 가지의 서로 다른 브랜드 DLL이 있으며 각 DLL에는 자체 참조 이미지가 있습니다. 그래서 사전에 넣고 일반 키를 할당했습니다. 이것을 강조하기 위해 질문을 업데이트했습니다. –
필자가 테스트 해본 결과, 원본 이미지 'UriSource'에 대한 전체 Pack URI와 함께 작동합니다. – Clemens