2012-12-13 4 views
-1

병합 된 ResourceDictionary 컨트롤과 함께 컨트롤 관련 리소스 (특히 Style)를 추가하는 데 문제가 있습니다. 중요하면 내 XAML 파일은 내가 작업중인 주 프로젝트의 하위 폴더에 있습니다.Silverlight 스타일 및 ResourceDictionary를 추가하는 동안 XamlParseException

내가 시작 :

<controls:ChildWindow.Resources> 

    <Style x:Key="ParmatersText" TargetType="TextBlock"> 
     <Setter Property="Margin" Value="5,5"/> 
    </Style> 

</controls:ChildWindow.Resources> 

하지만이 추가 할 때 문제가 있었다 : The designer does not support loading dictionaries that mix 'ResourceDictionary' items without a key and other items in the same collection.

의 오류 메시지와 함께

<controls:ChildWindow.Resources> 

    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="my.foo.bar;component/MyResources.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 

    <Style x:Key="ParmatersText" TargetType="TextBlock"> 
     <Setter Property="Margin" Value="5,5"/> 
    </Style> 

</controls:ChildWindow.Resources> 

을이 SO Question에서 가장 높은 평점 대답은 나에게 말했다 다음을 시도하면 </ResourceDictionary> 태그의 위치가 바뀝니다. 이 other SO question과 거기에있는 답변의 링크가이 접근 방식을 지원했습니다. 에 실패하지만

<controls:ChildWindow.Resources> 

    <ResourceDictionary x:Key="MyDictionary"> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="my.foo.bar;component/MyResources.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 

    <Style x:Key="ParmatersText" TargetType="TextBlock"> 
     <Setter Property="Margin" Value="5,5"/> 
    </Style> 

</controls:ChildWindow.Resources> 

: 같은 질문에서 Failed to assign to property 'System.Windows.ResourceDictionary.Source'

의 효과에 XamlParseException 실패 그러나

<controls:ChildWindow.Resources> 

    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="my.foo.bar;component/MyResources.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 

    <Style x:Key="ParmatersText" TargetType="TextBlock"> 
     <Setter Property="Margin" Value="5,5"/> 
    </Style> 

    </ResourceDictionary> 
</controls:ChildWindow.Resources> 

는, 나는 나에게이 준 표시된 대답을 시도 이전과 같은 XamlParseException. XAML ResourcesMerged Resource Dictionaries

이 두 MSDN 기사 나 페이지가 가지고있는 암시 ResourceDictionary을 이해하는 데 도움, 나는 분명히 지정과 함께 암시 사전에 리소스를 정의하여 충돌을 만드는거야 일을 합병했다.

위의 구문이 작동하지 않으며 XamlParseExceptions을 선택했습니다.

답변

0

결국 나는이 문제에 대한 해결책을 발견했으며, 그 중 일부는 하위 파일에있는 내 파일 때문인 것으로 생각됩니다.

<controls:ChildWindow.Resources> 

    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="MyResources.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 

    <Style x:Key="ParmatersText" TargetType="TextBlock"> 
     <Setter Property="Margin" Value="5,5"/> 
    </Style> 

    </ResourceDictionary> 

</controls:ChildWindow.Resources> 

이 매우 가까운이했다

<controls:ChildWindow xmlns:local="clr-namespace:my.foo.bar" >

및 리소스 섹션에 대한 올바른 구문 : 자식 윈도우의 선언 내에서

, 나는 다음과 같은 네임 스페이스를 추가 연결된 SO 질문에 대한 답변을 제공하지만 네임 스페이스의 요소를 추가하여 리소스 파일을 식별합니다.

관련 문제