是否可以在代码中检索LinearGradientBrush的角度?

时间:2016-02-28 01:03:54

标签: c# wpf xaml lineargradientbrush

我正在查看LinearGradientBrush类的构造函数,我发现它有一个覆盖,它接受一组GradientStops和一个double作为角度。

当我查看它的属性时,我无法找到如何定义刷子后的角度。

有没有办法做到这一点,或者我将不得不写一些看起点和终点的函数并从中计算角度? (Blech - 请不要告诉我这是我唯一的选择......)

1 个答案:

答案 0 :(得分:1)

  

我无法找到如何定义刷子后的角度。

根据referencesource.microsoft.comangle未存储,但仅用于计算EndPoint

public LinearGradientBrush(GradientStopCollection gradientStopCollection,
                           double angle) : base (gradientStopCollection)
{
    EndPoint = EndPointFromAngle(angle);
}

private Point EndPointFromAngle(double angle)
{
     // Convert the angle from degrees to radians
     angle = angle * (1.0/180.0) * System.Math.PI;

     return (new Point(System.Math.Cos(angle), System.Math.Sin(angle)));            
}

angle获取EndPoint应该很简单。