WPF

2009-06-11 20 views
14

'de şeffaf bir opak eleman Uygulamamda şeffaf bir pencereye sahip olmak istiyorum, ancak tamamen opak çocuklar alttan kontrol ediyor. Ancak, WPF tüm çocukları şeffaflaştırır.WPF

Aşağıdaki XAML'ye bakın. Izgara beklendiği gibi yarı saydam% 50'dir, ancak içindeki dikdörtgen, opaklık = "1" bile olsa opak değildir. Bunu başarabilmenin bir yolu var mı?

<Window x:Class="WpfApplication10.Window1" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Title="Window1" AllowsTransparency="True" Height="300" ResizeMode="NoResize" Width="300" WindowStyle="None" Background="Transparent" > 

    <Border BorderBrush="black" BorderThickness="7" CornerRadius="10"> 
     <Grid Background="Red" Opacity="0.5"  > 

     <Rectangle Width="100" Height="100" Fill="white" Opacity="1"/> 

    </Grid> 
    </Border></Window> 

sayesinde cellik

cevap

19

sizin dikdörtgen kapsayıcı (ızgara) .5 opaklık ve donukluk çocuk nesnelere miras olur çünkü opak tam değil sebebi.

<Grid Background="#66ff0000"> 

Bu, yarı saydam bir Izgara ve tam opak bir dikdörtgen vermelidir:

Bunun yerine, gibi yarı şeffaf bir şeye Grid Arkaplan Brush değiştirmeyi deneyin.

+0

Teşekkürler, bu cevap gerçekten işe yarıyor! – ariso

+0

Dikdörtgen tam opak çünkü renk "beyaz". Renk kırmızıya dönüştüğünde, kırmızı% 100 opaklık kırmızı değildir. % 100 kırmızı dikdörtgen almak için bir çözüm var mı? –

+0

Kılavuzdaki opaklık belirtilmemişse,% 100 kırmızı dikdörtgenle de çalışmalıdır. Değişikliğin, Dikdörtgen etiketinde değil Kılavuzda olduğuna dikkat edin. – micahtan