Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Lekim en 3 Octubre 2015, 13:20 pm



Título: Opacidad para la ventana pero no para los controles (WPF)
Publicado por: Lekim en 3 Octubre 2015, 13:20 pm
Hola

He conseguido hacer el efecto Glass o cristal con una ventana. Y sin transparentar los controles, porque es lo que he encontrado buscando por ahí.

Pero lo que yo quiero es aplicar opacidad (no el efecto glass) pero únicamente a la ventana. Cuando cambio la propiedad Opacity a la ventana. por ejemplo a 0.75,  todo el contenido de la misma también se vuelve opaca.

¿Alguien sabe como evitar esto?

Gracias



Código
  1. <Window x:Class="MainWindow"
  2.    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3.    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4.    Title="MainWindow" Height="350" Width="525" Opacity="0.75" AllowsTransparency="True" WindowStyle="None">
  5.    <Window.Background>
  6.        <SolidColorBrush Color="Red" Opacity="0.75"/>
  7.    </Window.Background>
  8.    <Grid Height="158" Width="274"  Background="Black" Opacity="1">
  9.        <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="71,70,0,0" Name="Button1" VerticalAlignment="Top" Width="75" Opacity="1" />
  10.    </Grid>
  11. </Window>


Título: Re: Opacidad para la ventana pero no para los controles (WPF)
Publicado por: Eleкtro en 3 Octubre 2015, 14:47 pm
No manejo WPF, pero formulas una pregunta básica que puedes encontrar muy sencillamente en Google...

Te muestro una imagen que lo explica al detalle:

Change Background opacity without changing content opacity
(http://i.imgur.com/3dLiQKm.png)

Saludos


Título: Re: Opacidad para la ventana pero no para los controles (WPF)
Publicado por: Lekim en 3 Octubre 2015, 16:52 pm
No manejo WPF, pero formulas una pregunta básica que puedes encontrar muy sencillamente en Google...

Te muestro una imagen que lo explica al detalle:

Change Background opacity without changing content opacity
(http://i.imgur.com/3dLiQKm.png)

Saludos

Te aseguro que lo he buscado y justo ese código que muestras yo lo he probado y no funciona como yo quiero. Si no no preguntaría

Al establecer WindowStyle="none" el borde y la barra no aparecen. (se me olvidó comentarlo  :-\)

Creo que no se puede. Debería usar alguna especie de hack.


Título: Re: Opacidad para la ventana pero no para los controles (WPF)
Publicado por: Eleкtro en 3 Octubre 2015, 17:28 pm
Te aseguro que lo he buscado y justo ese código que muestras yo lo he probado y no funciona como yo quiero. Si no no preguntaría

Al establecer WindowStyle="none" el borde y la barra no aparecen. (se me olvidó comentarlo  :-\)

Claro, eso es el estilo de ventana (con borde, sin borde, diálogo fijo, etc), no modifiques eso. ¿eso era lo único que dices que no te funciona como quieres?. ¿o te refieres a que usando ese ejemplo no te modifica la opacidad del fondo de la ventana sin alterar la opacidad de los controles?. De ser así, luego le hecho un vistazo.

saludos


Título: Re: Opacidad para la ventana pero no para los controles (WPF)
Publicado por: Lekim en 3 Octubre 2015, 17:34 pm
El ejemplo si que funciona. Pero ese sistema o forma de hacerlo te obliga a establecer el estilo en NONE. Porque .NET te obliga a establecerlo así si quieres establecer las transparencias. En fin que no hay manera.

Haciéndolo así tendré que hacerme una barra de título propia y botones, que royo  :-X.

De todos modos gracias.