5

opacityを取得しているすべての子にopacity 0.75を適用します。GridGrid

子コントロールを除外し、不透明度を適用しないことは可能ですか?

ありがとうございました!

XAML

<Grid  x:Name="RootGrid" Opacity="0.75" Visibility="Visible" ClipToBounds="False"
       VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
    <local:MarqueeVer x:Name="marquee1" Duration="30" ClipToBounds="True"
                      RenderTransformOrigin="0.5,0.5" Margin="0,0,0,0"
                      VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
                      Background="Transparent" Opacity="1">
        <StackPanel Name="lstItems" FlowDirection="LeftToRight" Orientation="Vertical"
                    VirtualizingStackPanel.IsVirtualizing="True"
                    VirtualizingStackPanel.VirtualizationMode="Recycling">
        </StackPanel>
    </local:MarqueeVer>
</Grid>

アップデート:

ここでいくつかの解決策を見つけましたが、もっと簡単な解決策はありますか?

各色の適切なアルファ チャネルを計算するだけです。

4

3 に答える 3

8

グリッドの背景の不透明度のみを変更する場合は、背景画像でのみ不透明度=0.75を設定する必要があります。

しかし、グリッドにブラシを適用するとどうなりますか?その場合、私は何ができますか?

その場合は、ブラシで不透明度を設定します

于 2012-05-17T13:56:37.223 に答える
2

この効果を実現するには、Rectangleをの子としてGrid(ただし、他の要素の兄弟として)追加し、BackgroundOpacityをに適用しますRectangle。このように、不透明度の変更は、の他の子には影響しませんGrid

<Grid Name="Root">
<Rectangle Name="Background" Opacity="0.75">
<Rectangle.Fill>

</Rectangle.Fill>
</Rectangle>
<Label>Hello World</Label>
</Grid>

私はこれがおそらく汚い解決策であることを知っています、しかしそれは私のためにトリックをしました。

于 2012-05-17T13:49:51.390 に答える
0

子を親よりも不透明にすることはできませんが、不透明度の異なるブラシを使用して、たとえばオーバーレイ効果を実現できます。

このような:

<Window x:Class="stackoverflowviewbox.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <SolidColorBrush Color="White" Opacity=".5" x:Key="WhiteHalfOpacityBrush"/>
</Window.Resources>
<Grid Background="Green">
    <Border BorderThickness="1" BorderBrush="Black" HorizontalAlignment="Center" VerticalAlignment="Center">
        <Grid Background="{StaticResource WhiteHalfOpacityBrush}">
            <Label>
                Hello world.Hello world.Hello world.Hello world.Hello world.Hello world.
            </Label>
        </Grid>
    </Border>
</Grid>

于 2012-05-17T13:41:39.367 に答える