Sie müssen gearbeitet, um nur zu definieren, wenn die Hintergrundfarbe. Wenn Sie dies auch in der DataGrid-Deklaration festlegen, wird der Stil überschrieben.
z.B. In diesem ersten Beispiel setze ich den Hintergrund in der Deklaration explizit auf rot, so dass die Farbe im Stil ignoriert wird. Ergebnis = roter Hintergrund
<DataGrid Background="Red">
<DataGrid.Resources>
<Style TargetType="{x:Type DataGrid}">
<Setter Property="Background" Value="Green"/>
</Style>
</DataGrid.Resources>
</DataGrid>
Wenn ich die Farbe aus der Deklaration entferne, wird die Farbe vom Stil übernommen. In diesem zweiten Beispiel sehen Sie einen grünen Hintergrund.
<DataGrid>
<DataGrid.Resources>
<Style TargetType="{x:Type DataGrid}">
<Setter Property="Background" Value="Green"/>
</Style>
</DataGrid.Resources>
</DataGrid>
Beachten Sie, dass die Background
für die DataGrid
ist die Farbe hinter den Zellen (Sie nicht einmal könnte es sehen, wenn Ihr DataGrid
mit Daten gefüllt ist). Sie können auch Stile für DataGridRow
, DataGridRowHeader
und DataGridColumnHeader
festlegen, wenn Sie diese Farben ändern möchten. Ich habe auch den Stil die obere linke Ecke setzen Schaltfläche Alle auswählen, die ein wenig schwieriger ist, genommen von Style datagrid table - Top left corner
<DataGrid>
<DataGrid.Resources>
<Style TargetType="{x:Type DataGrid}">
<Setter Property="Background" Value="Green"/>
</Style>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="Background" Value="Blue"/>
</Style>
<Style TargetType="{x:Type DataGridRowHeader}">
<Setter Property="Background" Value="Yellow"/>
</Style>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Background" Value="Orange"/>
</Style>
<Style TargetType="{x:Type Button}" x:Key="{ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, TypeInTargetAssembly={x:Type DataGrid}}">
<Setter Property="Background" Value="Black" />
</Style>
</DataGrid.Resources>
</DataGrid>
Es könnte möglicherweise sein, dass Sie es an anderer Stelle sind definiert, und es wird überschreiben. Haben Sie es auch direkt in Ihrer DataGrid-Deklaration festgelegt? z.B. ' ' –
Tone
ja, ich habe auch versucht mit dem –
Wenn es immer noch in der Deklaration ist, müssen Sie es entfernen oder der Stil, den Sie in Ihre Frage geschrieben haben, wird nicht angewendet. Sie möchten sicherstellen, dass Sie es nur einmal einstellen. Ich werde eine Antwort veröffentlichen, die zeigt, was ich meine. – Tone