Grille de données de la ligne sélectionnée de couleur lorsqu'il est inactif
Comment puis-je style WPF DataGrid pour changer la couleur de la ligne sélectionnée lors de la DataGrid perdu son accent?
Vous devez vous connecter pour publier un commentaire.
Après les âges de recherche, j'ai trouvé un moyen étonnamment simple à faire, ce qui est plus propre que le Got/LostFocus approche posté plus tôt:
Ce que des séries les inactifs de la couleur de fond de Gris, de quitter l'actif de la couleur de fond par défaut, mais vous pouvez le changer aussi l'utilisation de la SystemColors.HighlightBrushKey aussi, bien sûr.
L'avant-plan des ressources clés pour les inactifs sélections est SystemColors.InactiveSelectionHighlightTextBrushkey.
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="{x:Static SystemColors.HighlightColor}"/> <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="{x:Static SystemColors.HighlightTextColor}"/>
Solution complète qui fonctionne pour la version 4.0. Notez que cette sur le CellStyle.
De faire comme ceci:
Aucune de ces réponses m'a donné ce que je cherchais. Les mieux notés par Steve Streeting modifié d'autres sections de la grille de données que je n'ai pas envie de changer, et d'autres réponses n'étaient pas fournir la inactif changement de couleur, mais ont été correctement le ciblage de la ligne uniquement. Voici donc un mélange de leurs réponses que les changements de la inactif couleur, seulement sur les lignes et pas dans d'autres places sur la grille.
Pour .Net Framework 4.0 (ou si vous ne souhaitez pas utiliser le InactiveSelection... brosse clés):
Créer un DataGridRow style/modèle de contrôle, et d'ajouter ces déclencheurs:
Pour .net Framework 4.0
https://social.msdn.microsoft.com/Forums/vstudio/en-US/635642e6-4808-4b3e-8aea-c8c434397d0f/datagrid-lost-focus-brush?forum=wpf
RÉPONSE TARDIVE:
Cela fonctionne dans .Net 4.0, et vous n'avez pas à coder en dur la couleur:
Vous devez définir la section "contrôle DataGrid.CellStyle" à l'intérieur de votre grille de données comme ceci:
Trouver la réponse par moi-même.
Ajouter à la grille de données, les ressources de la brosse, ce qui peut changer sa "Couleur" de la propriété du code de derrière, et la référence HighlightBrushKey à elle:
Puis ajouter les DataGrids des gestionnaires d'événements pour modifier manuellement la couleur:
J'ai ajouté à mon ResourceDictionary de sorte qu'il s'applique à toutes les grilles de données dans mon programme.