2017-10-26 10 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で特定の要素について知っている限り、1つのスタイルのみを適用できます。

関連する問題