2017-03-24 31 views

答えて

2

あなたはそのようなものを使用する場合:StyleKeyを与えられていないので、あなたが、そのスコープ内のすべてColumnHeaderのためDataGridColumnHeaderStyleを変更している

<DataGrid> 
    <DataGrid.Resources> 
    <Style TargetType="{x:Type DataGridColumnHeader}"> 
     <Setter Property="Background" Value="Blue" /> 
    </Style> 
    </DataGrid.Resources> 
</DataGrid> 

は今、DataGridItemsSourceList<C>CAB呼ばstringプロパティを持つクラスであるであることをふりをします。これは、列Aの唯一Styleを設定するために何ができるかです:

<DataGrid> 
    <DataGrid.Resources> 
    <Style TargetType="{x:Type DataGridColumnHeader}" 
      Key="SpecialHeaderStyle"> <!-- here I set the Style's Key --> 
     <Setter Property="Background" Value="Blue" /> 
    </Style> 
    </DataGrid.Resources> 
    <DataGrid.Columns> 
    <!-- for this column I set the HeaderStyle property --> 
    <DataGridTextColumn Binding="{Binding A}" 
         Header="A" 
         HeaderStyle="{StaticResource SpecialHeaderStyle}"/> 
    <!-- for this column I don't --> 
    <DataGridTextColumn Binding="{Binding B}" 
         Header="B"/> 
    </DataGrid.Columns> 
</DataGrid> 

あなたが唯一の列Aに特別Styleを設定します。

このようにしてStyleを変更すると、マウスを使って渡すと変更されない固定の背景色を設定していることに注意してください。応答性の高いヘッダーUIを作成するには、そのテンプレート全体をオーバーライドする必要があります。より広い議論のためにthisを読んでください。

+0

私はデータグリッドにスタイルを適用して見栄えを良くするmaterialdesigninxamlを使用しています。 HeaderStyleを使用すると、materialdesigninxamlからすべてのスタイルを上書きするようです。 materialdesignxamlからスタイルを保持し、リソーススタイルの変更のみを適用する方法はありますか? –

+0

@DavidLee [この質問に行く](http://stackoverflow.com/questions/19383347/overridesdefaultstyle-together-with-basedon-in-wpf)それはあなたを助けるかもしれない(しかし、私はわからない)。 –

関連する問題