2009-11-01 12 views
10

Estoy tratando de crear un ListBox transparente en una aplicación WPF. Quiero que ListBox sea completamente transparente, por lo que una imagen de fondo es visible "detrás" de ListBox. Sin embargo, quiero que mis elementos de ListBox sean totalmente opacos, es decir, que se encuentren encima de la imagen de fondo.¿Cómo puedo hacer que el cuadro de lista sea transparente, pero los elementos de cuadro de lista son opacos en WPF?

¿Alguien sabe cómo puedo lograr esto?

¡Gracias por adelantado!

+0

Establezca el color de fondo de Lista para que sea transparente y aplique el estilo a los elementos en los que establezca el color de fondo. Espero que esto funcione –

Respuesta

19

Claro, es tan simple como establecer los antecedentes y BorderBrush propiedades en el cuadro de lista a transparente, y luego poner un Antecedentes para los 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> 

NOTA: que añade un margen a los ListBoxItems sólo para demostrar que el espacio entre ListBoxItems se mostrará hasta el fondo rojo de StackPanel circundante.

+0

esto salvó mi problema (+1) – Singleton

Cuestiones relacionadas