2011-09-19 11 views
4

나는 아주 단순한 점을 놓치고 아주 기본적인 것을 고민하고 있습니다. 하지만 계속해서 벽을 치는 것이므로 제발 도와주세요.스타일을 적용하는 중 예외가 발생했습니다

문제는 다음과 같습니다.

컨트롤에 적용한 동일한 윈도우의 <Window.Resources>에서 특정 스타일을 정의하면 모든 것이 잘 작동합니다. 하지만이 응용 프로그램을 다른 응용 프로그램 창에서 다시 사용하고 싶기 때문에 스타일을 일반적인 위치로 옮기려고했습니다. 그리고 여기에는 작업이 중단되었습니다.

스타일을 Themes \ Generic.xaml에 넣으면 스타일이 적용되지 않습니다. 내가 명시 적으로 ("MyStyle"는 x는 여기서 스타일의 키) 해당 컨트롤에 Style="{DynamicResource MyStyle}"을 적용하여 원래 창에서 참조 할 때

- 나는 '

자원 오류를 얻을 MyStyle은 '나는 별도의 XAML 파일에서 스타일을 넣으면

를 해결하고, 내 App.xaml에서 MergedDictionaries에 추가 할 수 없습니다, 나는 다른 문제를 얻을 : "'자원 '속성이 이미있다 'App'에서 설정하십시오.

<Application.Resources> 
    <ResourceDictionary x:Key="MergedDictionaries"> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Themes/MyStyle.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
<Application.Resources> 

답변

6

당신은 사전에 x:Key을 설정해서는 안, 그렇지 않으면, 그것은 대신 Application.Resources 속성을 설정해야하지 당신이 원하는 자원으로 추가됩니다 : 나는 그것을 정의하려고 방법 이다.

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <!-- Merged dictionaries --> 
     </ResourceDictionary.MergedDictionaries> 

     <!-- Other Resources --> 
    </ResourceDictionary> 
</Application.Resources> 
+0

나는 동일한 오류를 발생시키지 않습니다. ResourceDictionaris와 키가 섞여있을 때 VS가 좋아하지 않으므로 x : Key가 추가되었습니다. – Alex

+1

@Alex : 리소스를 외부에 추가하고 있습니까? 당신이 보인 코드는'x : Key'가 없어도 아무런 문제가 없어야합니다. 여러분은 단지 내가 발췌 한 부분에 다른 리소스를 추가했을 것입니다. –

+0

잘 잡습니다. 실제로 ResourceDictionary 외부의 리소스가 있습니다. 이제이 문제가 해결되었습니다 .- 여전히 외부 파일에서 적용된 스타일이 없습니다 .-( – Alex

관련 문제