Search code examples
c#wpfexpression-blend

LinearGradientBrush to Transparency shows white background


I have a background color of #424242 with a ListBox and some content..

enter image description here

I want to have a LinearGradientBrush from #424242 till Transparent on top of the Controls. The problem is, that I get a white background color:

enter image description here

If I replace Transparent with #00000000 I have a darker/black color:

enter image description here

XAML Code

<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


Solution

  • I have the answer: Just use the same color with Alpha 0%

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