Прозрачный GradientStop в Silverlight не совсем прозрачный - PullRequest
0 голосов
/ 15 февраля 2012

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

...