2009-04-17 9 views
8

Das muss so einfach sein, aber ich kann es nicht tun: Wenn ich einen Textblock in einen Container lege und die Opazität des Containers < 1 mache, erbt der Text diese Opazität, egal ob ich versuche überschreiben Sie es im Textblock. Wie kann ich den Text in einem halbtransparenten Behälter zu 100% deckend halten?Text über semitransparenten Hintergrund

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

Verwenden Sie einfach den Farbwert anstelle einer Opazität, um es transparent zu machen. – Peter

Antwort

14

Wird dies der Trick?

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

den Hintergrund einstellen transparent sein, nicht das ganze Border Element ...

3

Verwenden Sie einfach die einen Farbwert anstelle einer Opazität es transparant zu machen.

Die Farbe Eigenschaft kann aus 4 Parametern gebildet werden, dass:

  1. Transparancy
  2. Red
  3. Grün
  4. Blau

Alle von ihnen 0-255 reichen

Halb transparent blau wäre: (128,0,0,255) Übersetzt in XAML (Hexadezimal): # 800000FF

Diese Farbe können Sie in jedem colorbrush verwenden.

So sonst hat bereits ein Beispiel, wie Sie es in Ihrem Code implementieren, die ich gerade sehe.

+0

Danke. Ich schätze, das ist die gleiche Antwort wie oben bei Arjan, aber er war der Erste, der das Tick bekommt. :-) – Graeme

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

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