2009-04-17 16 views
8

Esto debe ser tan simple pero no puedo hacerlo: si pongo un bloque de texto en un contenedor y hago la opacidad del contenedor < 1, el texto hereda esa opacidad, no importa si intento anularlo en el bloque de texto. ¿Cómo puedo mantener el texto 100% de opacidad en un contenedor semi-transparente?Texto sobre fondo semitransparente

<Grid x:Name="LayoutRoot"> 
    <Border Background="red" Opacity="0.5"> 
     <TextBlock Text="TextBlok" Opacity="1"/> 
    </Border> 
</Grid> 
+0

Simplemente use el valor de un color en lugar de una opacidad para hacerlo transparente. – Peter

Respuesta

14

¿Esto hará el truco?

<Border Background="#80FF0000"> 
    <TextBlock Text="TextBlok"/> 
</Border> 

Ajuste del fondo sea transparente, no todo el elemento de frontera ...

3

sólo tiene que utilizar el valor de un color en lugar de una opacidad para que sea transparente.

la propiedad color se puede formar de 4 parámetros de bienestar:

  1. máxima transparencia
  2. Rojo
  3. verde
  4. azul

Todos ellos van 0-255

A medio azul transparante Sería: (128,0,0,255) Traducido a XAML (Hexidecimal): # 800000FF

Este color se puede usar en cualquier colorbrush.

Así que ya tiene un ejemplo de cómo implementarlo en su código que acabo de ver.

+0

Gracias. Supongo que esta es la misma respuesta que Arjan arriba, pero él fue el primero en obtener el tic. :-) – Graeme

0
<Grid> 
    <Grid.Background> 
     <SolidColorBrush Color="Red" Opacity="0.5"></SolidColorBrush> 
    </Grid.Background> 

    <TextBlock Text="Hallo there"></TextBlock> 
</Grid>  
Cuestiones relacionadas