首页 > 解决方案 > 如何在 WPF 中制作多向渐变?

问题描述

我目前在 XAML 中设置了如下渐变:

<Canvas>
    <Canvas.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="Black" Offset="0"/>
            <GradientStop Color="Red" Offset="0.5"/>
            <GradientStop Color="White" Offset="1"/>
        </LinearGradientBrush>
    </Canvas.Background>
</Canvas>

结果:

在此处输入图像描述

然而,这不是我想要达到的。我想要的是有一个渐变过渡到纯色。以下是我想要实现的目标:

在此处输入图像描述

从上图可以看出,顶部有一个白-红渐变,向下平滑过渡到黑色。我还没有找到一种方法来做到这一点,这就是我需要帮助的地方。有没有办法做到这一点?如果有,实现这一目标的最佳方法是什么(你知道的)?

标签: wpfcolorsgradientbrush

解决方案


您可以使用改变不透明度的垂直 LinearGradientBrush 覆盖第二个元素:

<Grid>
    <Canvas>
        <Canvas.Background>
            <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
                <GradientStop Color="White" Offset="0"/>
                <GradientStop Color="Red" Offset="1"/>
            </LinearGradientBrush>
        </Canvas.Background>
    </Canvas>
    <Canvas>
        <Canvas.Background>
            <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                <GradientStop Color="#00000000" Offset="0"/>
                <GradientStop Color="Black" Offset="1"/>
            </LinearGradientBrush>
        </Canvas.Background>
    </Canvas>
</Grid>

推荐阅读