WPF更改网格和网格边框不透明度而不影响子项

Rod*_*iko 7 wpf grid border opacity

我有一个网格,我想使不透明度为0.5.我也有这个网格的边界,以使圆角走投无路,我想这条边界也有不透明度0.5.我想要所有这些而不影响网格的内容.我成功地改变了网格的不透明度而没有影响内容:

        <Grid  Grid.Column="0"  Grid.Row="0" Margin="10,15,5,5" >
        <Border BorderThickness="7" CornerRadius="4" >
            <Grid>
                <Grid.Background>
                    <SolidColorBrush Color="#73B2F5" Opacity="0.5"/>
                </Grid.Background>
                <Grid.RowDefinitions>
                    <RowDefinition Height="30"/>
                    <RowDefinition Height="1*"/>
                </Grid.RowDefinitions>
                <Button Grid.Row="1" Grid.Column="0" Width="40" Height="40" Content="Asaf"></Button>

            </Grid>
        </Border>
    </Grid>
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,按钮具有完全不透明度,而网格为0.5,但边框呢?如何让我的边境有0.5混浊不影响里面的网格,网格内容(所有边框孩子)?

我试过这个,但它不起作用:

        <Grid  Grid.Column="0"  Grid.Row="0" Margin="10,15,5,5" >
        <Border BorderThickness="7" CornerRadius="4">
            <Border.Background>
                <SolidColorBrush Color="#73B2F5" Opacity="0.5"/>
            </Border.Background>
            <Grid>
                <Grid.Background>
                    <SolidColorBrush Color="#73B2F5" Opacity="0.5"/>
                </Grid.Background>
                <Grid.RowDefinitions>
                    <RowDefinition Height="30"/>
                    <RowDefinition Height="1*"/>
                </Grid.RowDefinitions>
                <Button Grid.Row="1" Grid.Column="0" Width="40" Height="40" Content="Asaf"></Button>

            </Grid>
        </Border>
    </Grid>
Run Code Online (Sandbox Code Playgroud)

Gim*_*mno 14

只需将Border的BorderBrush-Property(而不是Background-Property)设置为:

<Border.BorderBrush>
   <SolidColorBrush Color="#000000" Opacity="0.5"/>
</Border.BorderBrush>
Run Code Online (Sandbox Code Playgroud)

在您的示例中,它看起来像这样:

<Grid  Grid.Column="0"  Grid.Row="0" Margin="10,15,5,5" >
    <Border BorderThickness="7" CornerRadius="4">
        <Border.BorderBrush>
           <SolidColorBrush Color="#000000" Opacity="0.5"/>
        </Border.BorderBrush>
        <Grid>
            <Grid.Background>
                <SolidColorBrush Color="#73B2F5" Opacity="0.5"/>
            </Grid.Background>
            <Grid.RowDefinitions>
                <RowDefinition Height="30"/>
                <RowDefinition Height="1*"/>
            </Grid.RowDefinitions>
            <Button Grid.Row="1" Grid.Column="0" Width="40" Height="40" Content="Asaf"></Button>

        </Grid>
    </Border>
</Grid>
Run Code Online (Sandbox Code Playgroud)