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 コード) を使用すると、上の長方形の色相が色に応じて変化します! コードの最初の 2 桁はアルファ チャネルを表すべきではありませんか? 「00」が完全な透明性を意味しないのはなぜですか? どんなヒントでも大歓迎です。