如何将半透明设置为背景,而不是wp8的前景

本文关键字:wp8 半透明 设置 背景 | 更新日期: 2023-09-27 17:49:14

我正在创建一个自定义加载消息,我想将背景设置为仅半透明。我遇到的问题是,整个堆叠面板设置为半透明,包括背景和前景。如何只使背景半透明,而使前景保持原样?下面是我的xaml代码。

        <StackPanel Grid.Row="0" x:Name="spLoading" HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent">
            <Border Margin="5" Padding="5" BorderThickness="1" BorderBrush="Black" Background="Black" Opacity=".1" CornerRadius="10">
                <TextBlock x:Name="txtLoading" Foreground="White" Text="loading . . ." HorizontalAlignment="Center" TextAlignment="Center" FontSize="30" FontWeight="Bold" Padding="5" />
            </Border>                
        </StackPanel>

如何将半透明设置为背景,而不是wp8的前景

这将完成所需的操作。

<Border Margin="5" Padding="5" BorderThickness="1" BorderBrush="Black" CornerRadius="10">
            <Border.Background>
                 <SolidColorBrush Color="Black" Opacity="0.1" />
            </Border.Background>
            <TextBlock />
</Border> 

如果我很清楚你想要边界的背景有某种不透明度,那么方法就是播放边界背景的alpha通道,比如:

<Border Background="#3000"...>

 <Border Background="#33000000"...>

你可以在任何地方使用颜色,在你的情况下:

<StackPanel Grid.Row="0" x:Name="spLoading" HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent">
        <Border Margin="5" Padding="5" BorderThickness="1" BorderBrush="#33000000" Background="#33000000"  CornerRadius="10">
            <TextBlock x:Name="txtLoading" Foreground="White" Text="loading . . ." HorizontalAlignment="Center" TextAlignment="Center" FontSize="30" FontWeight="Bold" Padding="5" />
        </Border>
    </StackPanel>

这样你就有了边界背景和笔划半透明

    <Grid Grid.Row="0">
        <Rectangle   Opacity="0.4" Fill="Black"></Rectangle>
        <StackPanel Background="White"   HorizontalAlignment="Center" VerticalAlignment="Center" >
            <TextBlock Margin="20,10,20,10">Loading...</TextBlock>
        </StackPanel>
    </Grid>

这样做的目的是,网格占据了可用的全部空间,矩形为您提供灰度(不透明度(,堆叠面板按原样工作。

(注意这是我在WPF中所做的(