如何在 WPF 中制作 multi-directional 渐变?
How do I make a multi-directional gradient in 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>
结果:
然而,这不是我想要达到的。我想要的是将一个渐变过渡到纯色。以下是我想要实现的目标:
从上图中可以看出,顶部有一个 white-red 渐变,向下平滑过渡到黑色。我还没有找到一种方法来做到这一点,这就是我需要帮助的地方。有没有办法做到这一点?如果有,最好的方法是什么(你知道的)?
您可以用改变不透明度的垂直 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>
我目前在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>
结果:
然而,这不是我想要达到的。我想要的是将一个渐变过渡到纯色。以下是我想要实现的目标:
从上图中可以看出,顶部有一个 white-red 渐变,向下平滑过渡到黑色。我还没有找到一种方法来做到这一点,这就是我需要帮助的地方。有没有办法做到这一点?如果有,最好的方法是什么(你知道的)?
您可以用改变不透明度的垂直 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>