2016-02-28 70 views
0

我正在看LinearGradientBrush类的构造函数,我发现它有一个覆盖,它将GradientStops和double的集合作为一个角度。是否有可能在代码中检索LinearGradientBrush的角度?

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

有没有办法做到这一点,或者我将不得不编写一些函数来查看开始点和结束点并计算角度? (Blech - 请不要告诉我这是我唯一的选择...)

回答

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)));    
} 

充分利用EndPointangle应该直截了当。

+0

谢谢。有没有办法根据从0.0D到1.0D的双精度来设置角度? (我想我应该问这是另一个问题......) – Will

+0

恐怕我没有得到它。 – AlexD

+0

没关系。我想我有一个想法,感谢您的帮助。 – Will

相关问题