Sto utilizzando Visual Studio 2012 su Windows 7. Devo sapere perché il seguente stile per la riga selezionata di Grid non funziona per i colori di sfondo e di primo piano ma funziona perfettamente bene per altre proprietà come BorderBrush e BorderThickness ecc? Anche se posso vederli mentre cambiano mentre il mouse supera le righe della griglia.WPF DataGrid RowStyle per la riga selezionata che non modifica lo sfondo e il colore di primo piano
<Style x:Key="gridRowStyle" TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="PeachPuff"/>
<Setter Property="Foreground" Value="BlueViolet"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="PeachPuff"/>
<Setter Property="Foreground" Value="BlueViolet"/>
<Setter Property="BorderBrush" Value="BlueViolet" />
<Setter Property="BorderThickness" Value="2" />
</Trigger>
</Style.Triggers>
</Style>
Ecco come sto usando sulla griglia.
<DataGrid RowStyle="{StaticResource gridRowStyle}">
sto sottolineando per sapere "perché", piuttosto che la soluzione al problema, come ho già la soluzione al problema se uso lo stile cella della griglia invece di RowStyle come segue:
<Style x:Key="gridCellStyle" TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="PeachPuff"/>
<Setter Property="Foreground" Value="BlueViolet"/>
</Trigger>
</Style.Triggers>
</Style>
Potrebbe essere perché il contenuto di GridCell si sovrappone al GridRow? Hai provato a guardare il controllo in Snoop? – Dutts
Ho eseguito un test rapido con quello che hai pubblicato e funziona perfettamente. Puoi fornire maggiori dettagli su DataGrid e su qualsiasi definizione di riga? –
Sono nuovo a WPF e non ho mai usato lo snoop prima. Farò un tentativo per vedere cosa sta succedendo. Grazie .... – user2071895