0

我在 Silverlight 中设计了一个简单的图形对象,它显示为一个带有一些白色文本的红色矩形;当鼠标悬停在矩形上时,我想显示一个从红色渐变为透明的覆盖矩形,以便文本仅部分可见。我的问题是,我使用的 LinearGradientBrush 不会从红色变为透明,而是从红色变为某种半透明的白色!我已将问题重现如下:

<Grid x:Name="LayoutRoot" Background="Red">
<Grid.RowDefinitions>
    <RowDefinition/>
    <RowDefinition/>
</Grid.RowDefinitions>
<Grid>
    <Grid.Background>
        <LinearGradientBrush>
            <GradientStop Color="Transparent" Offset="0"/>
            <GradientStop Color="Red" Offset="1"/>
        </LinearGradientBrush>
    </Grid.Background>
</Grid>

在这种情况下,您可以很容易地看到网格的上半部分比下半部分略亮,即使我使用了透明颜色常数。如果我使用#00FFFFFF,结果是相同的,而如果我使用#00xxxxxx,其中xxxxxx是任何颜色的RGB代码,上方矩形的色调会根据颜色而变化!代码的前两位不应该代表阿尔法通道吗?为什么“00”不代表完全透明?任何提示表示赞赏。

4

0 回答 0