테마/Generic.xaml이 다른 어셈블리입니까?
문제는 응용 프로그램이 스타일이 정의 된 ResourceDictionary를 찾지 못하는 것입니다. 당신이 할 수있는 일
이 같은 정적 SharedDictionaryManager 클래스를 만드는 것입니다 :
public static class SharedDictionaryManager
{
private static ResourceDictionary _sharedDictionary;
internal static ResourceDictionary SharedDictionary
{
get
{
if (_sharedDictionary == null)
{
System.Uri resourceLocater =
new System.Uri("/assembly;component/Themes/Generic.xaml",
System.UriKind.Relative);
_sharedDictionary =
(ResourceDictionary)Application.LoadComponent(resourceLocater);
}
return _sharedDictionary;
}
}
}
을 그리고 당신이 리소스 사전을 추가 HostControl를 만들 때 제어 할 :
ctrl.Resources.MergedDictionaries.Add(SharedDictionaryManager.SharedDictionary);
당신이 만약을 둘 이상의 리소스 사전을 가지면 각각에 대해 이와 같은 속성 하나를 가질 수 있습니다. 또는 모든 리소스 사전을로드 한 다음 모든 사전을 병합하는 속성을 가질 수 있습니다.
이제 원하는 스타일을 자동으로 선택해야합니다.