2010-04-23 10 views
1

내 응용 프로그램에서 테마를 사용하려고하지만 스타일이 올바르게 적용되지 않는 문제가 있습니다. 다음 코드 줄을 실행합니다.스타일 업데이트 안 함

 App.Current.Resources.MergedDictionaries.Clear();      
     ResourceDictionary rd = new ResourceDictionary(); 
     rd.Source = new Uri("/Style2.xaml", UriKind.RelativeOrAbsolute); 
     App.Current.Resources.MergedDictionaries.Add(rd); 

페이지를 새로 고쳐야합니까? 그렇다면 Silverlight에서 어떻게 할 수 있습니까?

감사합니다. 블레이크

답변

1

예 정적 리소스는 이름이 정적 인 것처럼 정적 리소스가 "페이지를 새로 고침"해야합니다. Xaml 파서는 그 (것)들을 즉석에서 해결합니다.

현재 App.RootVisual에 할당 된 것이 무엇이든 새 인스턴스를 만들어 다시 할당해야합니다. 다음은 트릭을 수행 할 수있는 일반적인 코드입니다. -

App.RootVisual = (UIElement)Activator.CreateInstance(App.RootVisual.GetType()); 
+0

이것이 프리즘과 어떻게 작동하는지 알고 있습니까? 나는 프리즘에 익숙하지 않지만 이것이 Boostrapper를 방해 할 수있는 것처럼 보입니다. –

+0

@ 블레 이크 : 죄송합니다. 이제는 고맙게도 프리즘을 피할 수 없었습니다. 그러나 다른 MVVM 솔루션과 비슷한 경우 내 대답은 문제가됩니다. 이 테마를 호출하는 과정에 탐색의 일부 감각을 포함시킬 수 없으므로 어쨌든 새 페이지가로드됩니다. – AnthonyWJones

+0

네, 좋은 생각입니다. 내가 로그인 할 때 사용자 스타일을 처리하여 그 시간에 다른 페이지를 탐색하고로드 할 수 있습니다. 또한 "Implicit Styling"을 살펴보기 시작했습니다. 그러면 도움이 될 것 같습니다. –