说我是否有:
<Grid Background="LightGray" Margin="2,4,2,4" Opacity="0.5">
<Image Source="{Binding FullName}" Width="300" Height="170" />
</Grid>
这也会使图像的不透明度为0.5。当图像保持不透明度为1
时,是否可以使背景透明答案 0 :(得分:6)
您需要使用不是1的Alpha通道(不透明度)组件指定自己的Brush
对象。
<Grid>
<Grid.Background>
<SolidColorBrush Color="#FF295564" Opacity="0.3"/>
</Grid.Background>
</Grid>
值得注意的是,颜色十六进制值的第一个字节是alpha透明度,但Opacity属性允许您使用double,而不是无符号字节。它更容易阅读。
答案 1 :(得分:1)
您可以在用于Grid
Background
属性的画笔中指定不透明度,而不是将不透明度应用于整个Grid元素。
WPF的LightGray
为#FFD3D3D3
- 因此您可以使用#80D3D3D3
。
答案 2 :(得分:1)
背景也可以采用十六进制格式的颜色:
a is alpha
r is red
g is green
b is blue
可能的格式(from here)
<object property="predefinedBrushName"/>
- or -
<object property="#rgb"/>
- or -
<object property="#argb"/>
- or -
<object property="#rrggbb"/>
- or -
<object property="#aarrggbb"/>
- or -
<object property="sc#scA,scR,scG,scB"/>
- or -
<object property="ContextColor profileUri alphaValue,colorValue"/>
因此我们可以使用Background="#80D3D3D3"
((LightGray定义为#FFD3D3D3
,因此我将不透明度更改为50%)
<Grid Background="#80D3D3D3" Margin="2,4,2,4">
<Image Source="{Binding FullName}" Width="300" Height="170" />
</Grid>