.net - opaco - div transparente pero no el contenido
Cambia la opacidad de fondo sin cambiar la opacidad del contenido. (1)
Quería saber cómo puedo cambiar la opacidad del fondo de la ventana de WPF sin afectar los controles secundarios internos. Cuando cambio la propiedad de la ventana ''Opacidad'' a 0.5, obtengo una ventana semitransparente, pero la imagen dentro de la ventana también heredó el valor de opacidad de 0.5, entonces, ¿cómo puedo hacer la opacidad solo para la ventana?
La ventana es el contenedor primario de todo, por lo que establecer la opacidad en la ventana afectará a todo lo que contiene. Creo que lo que quieres hacer es cambiar la Opacity
de la Window.Background
.
Habilitar una ventana para hacer transparencia implica un par de cosas para agregar. Primero, deberá configurar Window.AllowsTransparency = True
y también establecer Window.WindowStyle = None
. WindowStyle.None
crea una ventana sin los botones de minimizar, maximizar y cerrar en el cromo de la ventana, por lo que tendrá que manejar eso en la aplicación junto con cambiar el tamaño y mover la ventana. Una vez que haya terminado, puede configurar Window.Background
para que tenga un pincel con un conjunto de Opacity
.
El siguiente ejemplo de código le mostrará cómo tener la ventana siempre transparente y establecerá la opacidad del fondo de la ventana para que tenga una opacidad diferente.
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication1.MainWindow"
x:Name="Window"
WindowStyle="None"
AllowsTransparency="True">
<Window.Background>
<SolidColorBrush Color="White" Opacity="0.5"/>
</Window.Background>
<Grid>
<!--Window Content-->
</Grid>
</Window>
Siempre puede configurar el fondo de la ventana como transparente si solo desea que los elementos de la ventana sean visibles.