相关疑难解决方法(0)

如何在WPF中绘制"软"线(可能使用LinearGradientBrush)?

无论斜率如何,我都试图绘制一条柔和边缘的线条.

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

<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>
Run Code Online (Sandbox Code Playgroud)

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

结果令人高兴:
http://img15.imageshack.us/img15/4108/horizo​​ntalsoftline.png
放大,这样你就可以看到渐变:http:
//img225.imageshack.us/img225/5027/horizo​​ntalsoftlinezoomeb.png

但是,当线不再是水平线时,渐变是基于线的边界矩形计算的,而不是根据线本身的几何形状计算的.结果是垂直阴影的斜线,而不是垂直于线的渐变:http:
//img183.imageshack.us/img183/7250/slantedsoftline.png

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

.net wpf xaml gradient .net-3.5

14
推荐指数
1
解决办法
6702
查看次数

标签 统计

.net ×1

.net-3.5 ×1

gradient ×1

wpf ×1

xaml ×1