代码之家  ›  专栏  ›  技术社区  ›  Dominic Jonas

LinearGradientBrush到透明显示白色背景

  •  1
  • Dominic Jonas  · 技术社区  · 6 年前

    我有一个 background 颜色 #424242 用一个 ListBox 还有一些内容。。

    enter image description here

    我想要一把 #424242个 Transparent 在控件的顶部。问题是,我得到一个白色背景:

    enter image description here

    如果我换了 透明的 具有 #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 回复  |  直到 6 年前
        1
  •  0
  •   Dominic Jonas    6 年前

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

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