我有这样的事情:
<Grid Background="Black" Opacitiy="0.5">
<Grid.RowDefinitions>...</Grid.RowDefinitions>
<Image Source="..." Opacity="1.0" Grid.Row="0"/>
<TextBlock Text="..." Opacitiy="1.0" Grid.Row="1"/>
</Grid>
不幸的是,图像和文本也会以50%的不透明度呈现。我想要的是一个半透明的黑色背景,100%纯色图像和文字儿童。
最好的方法是什么?
答案 0 :(得分:9)
添加Rectangle
作为网格的第一个子节点,确保它跨越所有网格的行和列,并具有所需的不透明度级别:
<Grid>
<Grid.RowDefinitions>...</Grid.RowDefinitions>
<Rectangle Fill="Black" Opacity="0.5" Grid.RowSpan="2" />
<Image Source="..." Grid.Row="0"/>
<TextBlock Text="..." Grid.Row="1"/>
</Grid>
(我已从Opacity
和Image
删除了TextBlock
属性,因为此处不需要它。)
答案 1 :(得分:2)
或者不需要额外的UI元素:
<Grid Background="#80000000" Opacitiy="0.5">
<Grid.RowDefinitions>...</Grid.RowDefinitions>
<Image Source="..." Opacity="1.0" Grid.Row="0"/>
<TextBlock Text="..." Opacitiy="1.0" Grid.Row="1"/>
</Grid>
记住“#80000000”表示Alpha(不透明度)=“80”,红色=“00”,绿色=“00”,蓝色=“00”,这些数字是十六进制值