2016-05-22 24 views
2

Wie ändere ich die Farbe meines Datagrids Ich habe die Farbe, die ich in den Designer möchte, aber wenn ich es debuggen es nur zurück zum Standard weiß ich hatte versucht mit dieseWie ändere ich die Hintergrundfarbe des Datagrids?

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

aber das hat nicht

+0

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

+0

ja, ich habe auch versucht mit dem –

+0

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

Antwort

0

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> 
+0

Wenn dies nicht behoben wird, aktualisieren Sie Ihre Frage bitte mit der vollständigen xaml-Quelle für Ihr DataGrid, damit wir sehen können, was sonst noch passieren könnte. – Tone

+0

ja es war wegen der Reihe gibt es eine Möglichkeit, die Farbe der kleinen anklickbaren Quadrate zu ändern (nicht sicher, wie sie heißen), die in der linken cornor sind –

+0

Die zusätzlichen Stile auf die Antwort verschoben – Tone

Verwandte Themen