65.9K
CodeProject 正在变化。 阅读更多。
Home

酷炫角度选择控件(Photoshop 风格)

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.69/5 (8投票s)

2006 年 7 月 29 日

CPOL
viewsIcon

40913

downloadIcon

394

一个用于选择角度的酷炫控件。

Angle Select Control

引言

这是我第一次决定在 CodeProject 上发布我的代码。它非常简单明了,我没什么好说的,我想上面的图片已经很好地描述了它。

基本上,我需要一个选择角度的控件,所以我制作了上面的这个。我看到了 Photoshop 中使用的那个,并决定自己创建一个。

实现非常简单,如以下代码所示

/// <summary>
/// Event - User is moving the mouse.
/// </summary>

private void AngleSelect_MouseMove(object sender, MouseEventArgs e)
{
    if (Clicked == true)
    {
        //if mouse down, change the Angle.
        Point centerPoint = new Point(ClientRectangle.Width / 2, 
                                      ClientRectangle.Height / 2);
        Point mousePos = ((MouseEventArgs)e).Location;
        //Using the Atan2 function in order to get the Angle 
        //of the Slope between the center Point
        // of the control and the Mouse Point.
        double radians = Math.Atan2(mousePos.Y - centerPoint.Y, 
                                    mousePos.X - centerPoint.X);
        //Then converting from Radians to regular Units.
        angle = (int)(radians * (180 / Math.PI));
        Refresh();
        //call delegated function
        try
        {
            angleChanged(angle);
        }
        catch { }
    }
}

以下是主要属性和要使用的事件

  • FillColor - 设置圆的填充颜色。
  • LineColor - 设置圆的线条颜色。
  • Angle - 设置或获取控件的角度。
  • AngleChanged - 在用户更改角度时调用。

希望对您有所帮助。

© . All rights reserved.