如何创建具有半透明背景但坚固的孩子的网格?

时间:2011-03-04 23:08:39

标签: silverlight windows-phone-7

我有这样的事情:

<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%纯色图像和文字儿童。

最好的方法是什么?

2 个答案:

答案 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>

(我已从OpacityImage删除了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”,这些数字是十六进制值