Прозрачный GradientStop в Silverlight не совсем прозрачный

Я оформляю простой графический объект в 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" не означает полную прозрачность? Любая подсказка приветствуется.

0 ответов

Другие вопросы по тегам