如何将半透明设置为背景,而不是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>
这将完成所需的操作。
<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中所做的(