C# 半透明背景和不透明前景wpf

C# 半透明背景和不透明前景wpf,c#,wpf,uwp,C#,Wpf,Uwp,我目前拥有以下xaml代码: <Grid Name="rootGrid" Opacity=".25" Background="Black" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> <Border Background="Black" Margin="120"> <Grid

我目前拥有以下xaml代码:

<Grid
    Name="rootGrid"
    Opacity=".25"
    Background="Black"
    HorizontalAlignment="Stretch"
    VerticalAlignment="Stretch">
    <Border
        Background="Black"
        Margin="120">
        <Grid
            Background="White"
            Margin="8">
            <TextBlock
                Name="popupContent">
                Test
            </TextBlock>
            <Button
                Click="Button_Click">
                Test
            </Button>
        </Grid>
    </Border>
</Grid>

试验
试验
目前,
网格
上的
不透明度
设置也应用于其子项


我只希望这种不透明度应用于其背景色,以实现变暗的效果,而不是在前景。如何做到这一点?

不透明度将始终适用于儿童,因此我倾向于使用相同级别的画布来实现此效果:

<Grid>
    <Canvas Opacity=".25"
        Background="Black"/>
    <Grid Name="rootGrid"
        HorizontalAlignment="Stretch"
        VerticalAlignment="Stretch">
        <Border
            Background="Black"
            Margin="120">
            <Grid
                Background="White"
                Margin="8">
                <TextBlock
                    Name="popupContent">
                    Test
                </TextBlock>
                <Button
                    Click="Button_Click">
                    Test
                </Button>
            </Grid>
        </Border>
    </Grid>
</Grid>

试验
试验

不透明度将始终适用于儿童,因此我倾向于使用相同级别的画布来实现此效果:

<Grid>
    <Canvas Opacity=".25"
        Background="Black"/>
    <Grid Name="rootGrid"
        HorizontalAlignment="Stretch"
        VerticalAlignment="Stretch">
        <Border
            Background="Black"
            Margin="120">
            <Grid
                Background="White"
                Margin="8">
                <TextBlock
                    Name="popupContent">
                    Test
                </TextBlock>
                <Button
                    Click="Button_Click">
                    Test
                </Button>
            </Grid>
        </Border>
    </Grid>
</Grid>

试验
试验

诀窍是不要将
不透明度
添加到整个
网格
元素:

<Grid>
    <Grid.Background>
        <SolidColorBrush Color="Black" Opacity=".75"/>
    </Grid.Background>
    <!--(Other elements)-->
</Grid>

诀窍是不要将
不透明度
添加到整个
网格
元素:

<Grid>
    <Grid.Background>
        <SolidColorBrush Color="Black" Opacity=".75"/>
    </Grid.Background>
    <!--(Other elements)-->
</Grid>

使用半透明背景,或者像SolidColorBrush一样

<Grid ...>
    <Grid.Background>
        <SolidColorBrush Color="Black" Opacity="0.25"/>
    </Grid.Background>
    ...
</Grid>

...
或者通过在颜色中指定alpha值,如

<Grid Background="#3F000000" ...>

使用半透明背景,或者像SolidColorBrush一样

<Grid ...>
    <Grid.Background>
        <SolidColorBrush Color="Black" Opacity="0.25"/>
    </Grid.Background>
    ...
</Grid>

...
或者通过在颜色中指定alpha值,如

<Grid Background="#3F000000" ...>

这对我很有效。我有两个网格:根网格和根内容子网格。我控制根内容的不透明度。“根目录”中的任何控件都不会生效

<Grid x:Name="Root" KeyDown="Root_KeyDown" Tapped="Root_Tapped">
      <!--(Other elements)-->
   <Grid x:Name="RootContent">
          <!--(Other elements)-->
   </Grid>
</Grid>

这对我很有效。我有两个网格:根网格和根内容子网格。我控制根内容的不透明度。“根目录”中的任何控件都不会生效

<Grid x:Name="Root" KeyDown="Root_KeyDown" Tapped="Root_Tapped">
      <!--(Other elements)-->
   <Grid x:Name="RootContent">
          <!--(Other elements)-->
   </Grid>
</Grid>


我有一个想法,
Grid.Background
可能有用,但感谢alpha频道的建议!我有一个想法,
Grid.Background
可能会有用,但是感谢alpha频道的建议!