wpf .net-3.0

wpf - opacidad borrosa



.net-3.0 (3)

Necesito crear un fondo borroso transparente. Supongamos que tengo un borde con un fondo blanco borroso y transparente. Todo lo que está detrás de la frontera está borroso.

Estoy tratando de evitar dependencias; Actualmente estoy usando .NET 3.0, y quiero que se ejecute con XP también.

Imagen de maqueta:


Me imagino que necesitarás usar un Efecto para esto, aplicado a un rectángulo o cuadrícula de fondo.

Aquí hay una biblioteca de efectos decente si eso hace flotar tu bote.



Un VisualBrush se puede usar para acercarse a lo que desea, pero tiene algunas limitaciones.

Siempre que solo necesite el efecto de vidrio dentro de la ventana (y que no sea un efecto sobre otras ventanas) y que la ubicación del borde del efecto de vidrio esté controlada firmemente, entonces podría hacer algo como esto: -

<Grid> <Border x:Name="src" Background="Silver"> <Label HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="50">Hello World</Label> </Border> <Border Background="White" Margin="40" > <Border Opacity="0.5" > <Border.Effect> <BlurEffect Radius="10"/> </Border.Effect> <Border.Background> <VisualBrush Visual="{Binding ElementName=src}" Stretch="None" /> </Border.Background> </Border> </Border> </Grid>

No creo que un elemento secundario dentro del árbol visual pueda obtener el VisualBrush de su padre, por lo que esto podría ser una limitación para usted. (es decir, el panel de cristal no puede ser contenido por el panel de fondo)

He usado VisualBrushes muchas veces generalmente con TranslateTransforms para moverlos un poco y obtener la imagen correcta en el lugar correcto.

Actualizar:

Alterado XAML para utilizar Effect y no BitmapEffect que es más lento y ahora se depreció como se menciona en los comentarios a continuación por Steven Robbins.