2017-10-26 14 views
0

스타일을 적용하려고하는데 문제가 있습니다. 나는 (내가 MahApps을 사용하십시오)이 전역 스타일글로벌 스타일 - WPF

<Style TargetType = "{x: Type DataGridCell}" 
           BasedOn = "{StaticResource MetroDataGridCell}"> 
        <Setter Property = "Template"> 
            <Setter.Value> 
                <ControlTemplate TargetType = "{x: Type DataGridCell}"> 
                    <Grid> 
                        <ContentPresenter HorizontalAlignment = "Center" 
                                          VerticalAlignment = "Center" /> 
                    </ Grid> 
                </ ControlTemplate> 
            </Setter.Value> 
        </ Setter> 
</ Style> 

그것이 무엇을하는 것은 데이터 그리드에서 셀의 내용을 중심으로하는 것입니다 수 있습니다. 그건 완벽하게 작동합니다. 문제는 내 창의 .xaml에 다른 스타일을 중첩하려는 경우입니다.

<DataGridTextColumn Header="Date" Binding="{Binding Date, Converter={StaticResource DefaultDateTimeToHyphenStyle}, UpdateSourceTrigger=PropertyChanged}"> 
    <DataGridTextColumn.CellStyle> 
     <Style TargetType="{x:Type DataGridCell}" 
       BasedOn="{StaticResource MetroDataGridCell}"> 
      <Setter Property="Foreground" Value="{Binding Path=., Converter={StaticResource CellForegroundColorDateConverter}}" /> 
     </Style> 
    </DataGridTextColumn.CellStyle> 
</DataGridTextColumn> 

해당 스타일을 적용하면 전역 스타일 (해당 셀에서)이 작동하지 않습니다. 텍스트를 왼쪽에 맞 춥니 다. 뭐가 잘못 되었 니? 고맙습니다.

+1

시도해보십시오. BasedOn = "{StaticResource {x : Type DataGridCell}}". MetroDataGridCell에서 스타일을 파생 했으므로 전역 스타일이 무시됩니다. –

+0

@AyyappanSubramanian thx 답장을 보내고 있지만 작동하지 않습니다. ( – Kardia

+0

글로벌 스타일의 핵심을 알려주고이를 토대로합니다 –

답변

1

{StaticResource MetroDataGridCell}에서 스타일을 상속 받기 때문에 발생합니다. {StaticResource {x : Type DataGridCell}}로 변경하면 제대로 작동합니다.

0

WPF에서 특정 요소에 대해 알고있는 한 하나의 스타일 만 적용 할 수 있습니다.