2009-11-01 18 views
10

J'essaie de créer un ListBox transparent dans une application WPF. Je veux que la ListBox soit complètement transparente, ainsi une image d'arrière-plan est visible "derrière" le ListBox. Cependant, je veux que mes éléments ListBox soient totalement opaques, c'est-à-dire qu'ils se trouvent au-dessus de l'image d'arrière-plan.Comment rendre la boîte à liste transparente, mais les éléments de liste déroulante opaque dans WPF?

Est-ce que quelqu'un sait comment je peux accomplir cela?

Merci d'avance!

+0

Définissez la couleur d'arrière-plan de la liste sur Transparent et appliquez un style aux éléments pour lesquels vous définissez la couleur d'arrière-plan. J'espère que cela fonctionne –

Répondre

19

Bien sûr, il est aussi simple que la mise en arrière-plan et les propriétés BorderBrush sur le ListBox transparent, puis définir un arrière-plan pour les ListBoxItems:

<StackPanel Background="Red"> 
    <ListBox Background="Transparent" BorderBrush="Transparent"> 
     <ListBox.Resources> 
      <Style TargetType="{x:Type ListBoxItem}"> 
       <Setter Property="Background" Value="White" /> 
       <Setter Property="Margin" Value="1" /> 
      </Style> 
     </ListBox.Resources> 
     <ListBoxItem Content="First Item"/> 
     <ListBoxItem Content="Secton Item"/> 
    </ListBox> 
</StackPanel> 

REMARQUE: J'ai ajouté une marge aux ListBoxItems juste Démonstration de l'espacement entre les ListBoxItems montrera tout le chemin à l'arrière-plan rouge de StackPanel environnant.

+0

cela a sauvé mon problème (+1) – Singleton