LinearGradientBrush到透明度显示白色背景

时间:2018-09-13 13:20:58

标签: c# wpf expression-blend

我的background颜色为#424242,带有ListBox和一些内容。

enter image description here

我希望在控件顶部有一个#424242Transparent之间的LinearGradientBrush。问题是,我得到了白色的背景色:

enter image description here

如果我将Transparent替换为#00000000,则颜色会变深/变黑:

enter image description here

XAML代码

<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="136*"/>
            <RowDefinition Height="203*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <StackPanel Orientation="Vertical" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center">
            <TextBlock Text="Transparent to #424242"></TextBlock>
            <TextBlock Text="Transparent to #424242"></TextBlock>
            <TextBlock Text="Transparent to #424242"></TextBlock>
            <TextBlock Text="Transparent to #424242"></TextBlock>
            <TextBlock Text="Transparent to #424242"></TextBlock>
            <TextBlock Text="Transparent to #424242"></TextBlock>
            <TextBlock Text="Transparent to #424242"></TextBlock>
            <TextBlock Text="Transparent to #424242"></TextBlock>
            <TextBlock Text="Transparent to #424242"></TextBlock>
            <TextBlock Text="Transparent to #424242"></TextBlock>
            <TextBlock Text="Transparent to #424242"></TextBlock>
            <TextBlock Text="Transparent to #424242"></TextBlock>
            <TextBlock Text="Transparent to #424242"></TextBlock>
            <TextBlock Text="Transparent to #424242"></TextBlock>
            <TextBlock Text="Transparent to #424242"></TextBlock>
        </StackPanel>
        <Rectangle Grid.Column="0" Grid.Row="0">
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="Transparent" Offset="0"/>
                    <GradientStop Color="#424242" Offset="1"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>

        <StackPanel Orientation="Vertical" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Center">
            <TextBlock Text="#00000000 to #424242"></TextBlock>
            <TextBlock Text="#00000000 to #424242"></TextBlock>
            <TextBlock Text="#00000000 to #424242"></TextBlock>
            <TextBlock Text="#00000000 to #424242"></TextBlock>
            <TextBlock Text="#00000000 to #424242"></TextBlock>
            <TextBlock Text="#00000000 to #424242"></TextBlock>
            <TextBlock Text="#00000000 to #424242"></TextBlock>
            <TextBlock Text="#00000000 to #424242"></TextBlock>
            <TextBlock Text="#00000000 to #424242"></TextBlock>
            <TextBlock Text="#00000000 to #424242"></TextBlock>
            <TextBlock Text="#00000000 to #424242"></TextBlock>
            <TextBlock Text="#00000000 to #424242"></TextBlock>
            <TextBlock Text="#00000000 to #424242"></TextBlock>
            <TextBlock Text="#00000000 to #424242"></TextBlock>
            <TextBlock Text="#00000000 to #424242"></TextBlock>
        </StackPanel>
        <Rectangle Grid.Column="1" Grid.Row="0">
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#00000000" Offset="0"/>
                    <GradientStop Color="#424242" Offset="1"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>

        <StackPanel Orientation="Vertical" Grid.Column="2" Grid.Row="0" HorizontalAlignment="Center">
            <TextBlock Text="Hello World"></TextBlock>
            <TextBlock Text="Hello World"></TextBlock>
            <TextBlock Text="Hello World"></TextBlock>
            <TextBlock Text="Hello World"></TextBlock>
            <TextBlock Text="Hello World"></TextBlock>
            <TextBlock Text="Hello World"></TextBlock>
            <TextBlock Text="Hello World"></TextBlock>
            <TextBlock Text="Hello World"></TextBlock>
            <TextBlock Text="Hello World"></TextBlock>
            <TextBlock Text="Hello World"></TextBlock>
            <TextBlock Text="Hello World"></TextBlock>
            <TextBlock Text="Hello World"></TextBlock>
            <TextBlock Text="Hello World"></TextBlock>
            <TextBlock Text="Hello World"></TextBlock>
            <TextBlock Text="Hello World"></TextBlock>
        </StackPanel>
        <Rectangle Grid.Column="2" Grid.Row="0" Opacity="0">
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#424242" Offset="0"/>
                    <GradientStop Color="#424242" Offset="1"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
    </Grid>
</Grid>

enter image description here

1 个答案:

答案 0 :(得分:0)

我有答案:只需使用与Alpha 0%相同的颜色

<Rectangle.Fill>
    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
        <GradientStop Color="#FF424242" Offset="1"/>
        <GradientStop Color="#00424242"/>
    </LinearGradientBrush>
</Rectangle.Fill>