Je souhaite cacher la bordure de la liste de liste et faire fond d'un élément sélectionné identique à celui des personnes non sélectionnées.
Comment puis-je faire cela?
Pour cacher la bordure, utilisez
<ListBox BorderThickness="0"/>
Si vous ne voulez pas avoir de sélection, utilisez un ItemsControl
au lieu du ListBox
.
Le code suivant masque la bordure autour de la liste de liste et affiche toujours un fond blanc sur l'élément (si son généré via la propriété ItemsSource
-).
<ListBox BorderThickness="0" HorizontalContentAlignment="Stretch">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Padding" Value="0"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Background="White">
<ContentPresenter Content="{Binding}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Si vous utilisez ListViewItem-Instances, vous devez modifier l'arrière-plan.
MISE À JOUR
<ListBox BorderThickness="0" HorizontalContentAlignment="Stretch" >
<ListBox.Resources>
<Style TargetType="ListBoxItem">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>
</Style.Resources>
</Style>
</ListBox.Resources>
</ListBox>
Cela devrait également travailler avec ListboxItem-Instances et IMO Moins de "contour".