2009-05-27 7 views
6

저는 툴킷을 가지고 있습니다 : DataGrid (Codeplex에서). 시각적 스타일 다른 트리거에 대한 하나의 요소에 여러 XAML 스타일을 적용하려면 어떻게해야합니까?

  • 하나 등을위한 뷰 모델
  • 하나의 변수에 기초하여 ON과 OFF를 전환

    • 하나

      다양한 스타일을 가지고 시작 .

    이 모두있는 유일한 방법은 그것을 할 것입니다, 하나의 큰 스타일에있을 필요가 있는가? 또는 여러 스타일을 갖고 필요할 때 부착 할 수 있습니까? 이 작업을 수행 할 수있는 방법이 있습니까? 예 : 코드 스왑 스타일?

    스타일 :

    <Style x:Key="CodePlexDataGridSwapper" TargetType="toolkit:DataGrid"> 
        <Style.Triggers> 
         <DataTrigger Binding="{Binding WhichGrid}" Value="Infragistics"> 
          <Setter Property="toolkit:DataGrid.Visibility" Value="Collapsed"/> 
         </DataTrigger> 
        </Style.Triggers> 
    </Style> 
    
    <Style x:Key="ToolkitDataGridLayout" TargetType="toolkit:DataGrid"> 
        <Setter Property="Background" Value="Yellow"/> 
    </Style> 
    

    의사 코드 :

    <toolkit:DataGrid 
        Style="{StaticResource CodePlexDataGridSwapper, ToolkitDataGridLayout}" 
        ItemsSource="{Binding Customers}"/> 
    
  • 답변

    11

    당신은 스타일 클래스의 BasedOn property보고 할 수 있습니다. 기본적으로 다른 스타일에서 한 스타일을 상속받을 수 있습니다. '자식'스타일은 부모의 설정자 및 트리거를 모두 가지며 (부모의 설정을 무시하는 설정자가없는 경우) 분명히 자체의 설정자와 트리거를 갖습니다.

    어쩌면이 정보가 도움이 될 것입니다.

    +1

    +1 다소 도움이 되었기 때문에 두 개 이상의 스타일 세트를 적용/병합하는 데 여전히 도움이되지 않습니다. 유감스럽게도, 간단한 기반 상속 (semi-inheritance)을 제외하고는 '많은'것을 적용 할 방법이 없다는 것은 확실합니다. – quetzalcoatl

    +0

    대답은 여기에 있습니다 : http : //stackoverflow.com/questions/16096/how-to-apply-multiple-styles-in-wpf –