Retrait de WPF ListView/GridView en évidence chrome
J'ai WPF ListView avec GridView vue et je veux enlever toute trace de la ligne en surbrillance.
Ce morceau de code peut être trouvé dans l'une réponse sur ce site:
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Control.Focusable" Value="False"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{x:Null}" />
<Setter Property="BorderBrush" Value="{x:Null}" />
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
Cependant, alors que cette modification permet d'enlever la plupart de la lumière, il ne supprime pas la barre horizontale qui apparaît encore lorsque la souris se déplace sur la liste de la ligne. Comment puis-je le supprimer?
J'ai abordé le problème similaire impliquant Bouton et trouvé une solution qui change Bouton modèle en lui retirant son chrome.
Dans ce cas de ListView/GridView je suis incapable de trouver le correspondant de chrome et le modèle pour le changement.
OriginalL'auteur Tony | 2009-08-09
Vous devez vous connecter pour publier un commentaire.
Si vous avez le kit de développement logiciel Windows installé, vous pouvez trouver le code source XAML pour tous les styles par défaut (en supposant que vous avez installé les échantillons):
Le fichier zip contient un dossier de Base qui contient AeroTheme, LunaTheme etc qui contiennent la source pour les styles par défaut. Malheureusement, ces fichiers sont assez gros (~8500 lignes pour Aero) et pas très bien structuré ou de mise en forme (OMI).
Le modèle de contrôle par défaut pour un ListViewItem ressemble à ceci:
Votre meilleur pari pour l'enlèvement de toute la mise en évidence est sans doute pour remplacer le ControlTemplate avec vous-même que comprend le GridViewRowPresenter (peut-être que dans une seule Frontière). N'oubliez pas d'inclure le Déclencheur de gris les articles lorsque le contrôle est désactivé.
Je peux confirmer que UpperHighlight rectangle était le coupable. Merci!
Incroyable... uniquement dans WPF, je n'ai eu pour annuler un style pour se débarrasser d'un seul fait marquant de l'élément.
OriginalL'auteur Phil Devaney
Je ne suis pas devant un ordinateur Windows pour tester ce droit maintenant, mais j'ai eu un problème similaire avec les listes que j'ai fixé en mettant la ligne suivante dans la Fenêtre de mon.Ressources
Ne sais pas si cela fonctionnera avec votre listview.
Merci! Cela a fonctionné pour moi quand je l'ai mis dans ma fenêtre de ressources avec Style targetType="ListViewItem". J'ai également ajouté une ligne pour définir le SystemColors.HighlightTextBrushKey à SystemColors.WindowTextColor sinon, pour empêcher ma couleur du texte à partir de commutation de la couleur d'arrière-plan (et donc à la disparition).
Pour moi, il fonctionne sur la liste sans Gridview. Mais PAS avec Gridview.
OriginalL'auteur Martin Doms
À l'aide de votre code, je ne vois aucune ligne à tous. Quel est votre thème par défaut maintenant? Luna, Aero, etc.? Il pourrait être que la tienne est différente de la mienne, donc une différence dans google chrome. Existe-il d'autres paramètres sur votre
ListView
?Style Détecte ou Montrez-Moi Le Modèle peut vous aider à repérer l'élément visuel de la ligne que vous voyez. Vous pourriez également être intéressé par re-création de modèles votre
ListView
pour obtenir l'effet que vous voulez.OriginalL'auteur Joel B Fant