2009-11-01 8 views
10

Ich versuche, eine transparente ListBox in einer WPF-Anwendung zu erstellen. Ich möchte, dass die ListBox vollständig transparent ist, daher ist ein Hintergrundbild "hinter" der ListBox sichtbar. Ich möchte jedoch, dass meine ListBox-Objekte vollständig undurchsichtig sind, dh sie liegen über dem Hintergrundbild.Wie kann ich Listbox transparent machen, aber Listenelemente in WPF opak?

Weiß jemand, wie ich das erreichen kann?

Vielen Dank im Voraus!

+0

Setzen Sie die Hintergrundfarbe für List auf transparent und wenden Sie Stil auf Elemente an, bei denen Sie die Hintergrundfarbe auf whit setzen. Hoffe, das funktioniert –

Antwort

19

Sicher, es ist so einfach, wie die Hintergründe und BorderBrush Eigenschaften auf der List-Box auf Transparent festlegen und dann einen Hintergrund für die ListBoxItems Einstellung:

<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> 

HINWEIS: habe ich eine Margin auf die ListBoxItems nur zu Der Abstand zwischen den ListBox-Elementen wird bis zum roten Hintergrund des umgebenden StackPanels angezeigt.

+0

das hat mein Problem gerettet (+1) – Singleton