如何绘制两种颜色的bezier?如下图? 我已经绘制了bezier,我可以用任何颜色填充它,但是我无法使渐变工作。
这就是我正在做的事情,我正在使用Path来创建bezier。
private void test()
{
System.Windows.Media.GradientStop GradientStop1 = new System.Windows.Media.GradientStop();
System.Windows.Media.GradientStop GradientStop2 = new System.Windows.Media.GradientStop();
System.Windows.Media.LinearGradientBrush p_Fill; p_Fill = new System.Windows.Media.LinearGradientBrush(Colors.Blue, Colors.Red, new Point(0, 0.5), new Point(1, 0.5));
p_Fill.GradientStops.Add(GradientStop1);
p_Fill.GradientStops.Add(GradientStop2);
Bez.Fill = p_Fill;
}
这应该是
这就是我得到的
答案 0 :(得分:2)
如果您需要在两个颜色的两半之间进行切割,则需要更多GradientStops
:
var grad3 = new System.Windows.Media.GradientStop()
{Offset = 0.5, Color=Colors.Blue};
var grad4 = new System.Windows.Media.GradientStop()
{Offset = 0.5, Color=Colors.Red};
GradientStop2.Offset = 1;
p_Fill.GradientStops.Add(GradientStop1);
p_Fill.GradientStops.Add(grad3);
p_Fill.GradientStops.Add(grad4);
p_Fill.GradientStops.Add(GradientStop2);
另外,您必须为Brush
而不是Stroke
设置Fill
。 StrokeThickness
确定曲线的粗细:
Bez.Stroke = p_Fill;
Bez.StrokeThickness = new Thickness(10);