gpt4 book ai didi

.net - 如何在 WPF 中绘制 "soft"线(大概使用 LinearGradientBrush)?

转载 作者:行者123 更新时间:2023-12-03 22:37:03 25 4
gpt4 key购买 nike

我试图用软边缘画一条线,不管坡度如何。

这是我到目前为止的代码:

<Line   HorizontalAlignment="Stretch" VerticalAlignment="Center"
Stretch="Uniform" StrokeThickness="5" X1="0" Y1="0" X2="1" Y2="0">
<Shape.Stroke>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="Transparent" Offset="0" />
<GradientStop Color="Green" Offset="0.5" />
<GradientStop Color="Transparent" Offset="1" />
</LinearGradientBrush>
</Shape.Stroke>
</Line>

这对我来说很有意义,因为线是水平的,线性渐变是垂直的,边缘是透明的,线的中间是纯绿色。

结果令人欣喜:


放大以便您可以看到渐变:
http://img225.imageshack.us/img225/5027/horizontalsoftlinezoomeb.png

但是,当线条不再是水平的时,梯度是根据线条的边界矩形计算的,而不是线条本身的几何形状。结果是一条垂直阴影的斜线,而不是垂直于该线的渐变:



有谁知道 WPF 如何处理软边缘?我在谷歌或 MSDN 上找不到任何东西,我知道有一种方法可以以某种方式做到这一点......

最佳答案

好吧,我不知道这是否适用于您的场景,但您可以简单地使用 LayoutTransform 旋转水平线,渐变就可以了。

<Line   HorizontalAlignment="Stretch" VerticalAlignment="Center"
Stretch="Uniform" StrokeThickness="5" X1="0" Y1="0" X2="1" Y2="0">
<Shape.Stroke>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="Transparent" Offset="0" />
<GradientStop Color="Green" Offset="0.5" />
<GradientStop Color="Transparent" Offset="1" />
</LinearGradientBrush>
</Shape.Stroke>
<Line.LayoutTransform>
<RotateTransform Angle="40"/>
</Line.LayoutTransform>

关于.net - 如何在 WPF 中绘制 "soft"线(大概使用 LinearGradientBrush)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1412833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com