2009-06-11 6 views
14

En mi aplicación, me gustaría tener una ventana transparente pero controles inferiores totalmente opacos debajo. Sin embargo, WPF hace que todos los niños sean transparentes.elemento opaco en una transparente en WPF

Vea el XAML a continuación. La cuadrícula es semitransparente al 50% como se esperaba, pero el rectángulo en ella no es transparente, incluso opacidad = "1". ¿Hay alguna forma de lograr esto?

<Window x:Class="WpfApplication10.Window1" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Title="Window1" AllowsTransparency="True" Height="300" ResizeMode="NoResize" Width="300" WindowStyle="None" Background="Transparent" > 

    <Border BorderBrush="black" BorderThickness="7" CornerRadius="10"> 
     <Grid Background="Red" Opacity="0.5"  > 

     <Rectangle Width="100" Height="100" Fill="white" Opacity="1"/> 

    </Grid> 
    </Border></Window> 

gracias, cellik

Respuesta

19

La razón por la que su rectángulo no es totalmente opaco es porque el contenedor (la red) tiene una opacidad de 0,5, y la opacidad se hereda a los objetos secundarios.

En su lugar, trate de cambiar el cepillo de fondo de la cuadrícula a algo semitransparente como:

<Grid Background="#66ff0000"> 

Esto debe darle una rejilla semitransparente y un rectángulo totalmente opaco.

+0

Gracias, esta respuesta realmente funciona! – ariso

+0

El rectángulo está completamente opaco porque el color es 'blanco'. Si el color cambia a rojo, por ejemplo, el rojo no es 100% opacidad rojo. ¿Tienes solución para obtener el rectángulo 100% rojo? –

+0

Mientras no se especifique la opacidad en la cuadrícula, también debería funcionar con un rectángulo rojo al 100%. Tenga en cuenta que el cambio está en la cuadrícula, no en la etiqueta Rectángulo. – micahtan

Cuestiones relacionadas