| | |
| | | /// <param name="i_B">B</param>
|
| | | public void ShowForm(int i_R,int i_G,int i_B)
|
| | | {
|
| | | this.ScrollEnabled = false;
|
| | |
|
| | | //设置头部信息
|
| | | base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uSelectColor));
|
| | |
|
| | |
| | | btnWhiteView.Radius = (uint)this.GetPictrueRealSize(30) / 2;
|
| | | framePic.AddChidren(btnWhiteView);
|
| | |
|
| | | bool pointIsRight = false;
|
| | | //圆的半径
|
| | | int circleR = framePic.Width / 2 - this.GetPictrueRealSize(35);
|
| | | colorPic.ColorChaged += (sender, eColor) =>
|
| | | {
|
| | | if (pointIsRight == false)
|
| | | {
|
| | | //点的区域不是圆盘内
|
| | | return;
|
| | | }
|
| | | listRGB = new List<int>();
|
| | | listRGB.Add(Convert.ToInt32(Convert.ToString(eColor[0])));
|
| | | listRGB.Add(Convert.ToInt32(Convert.ToString(eColor[1])));
|
| | |
| | | };
|
| | | colorPic.MouseDownEventHandler += (sender, e) =>
|
| | | {
|
| | | pointIsRight = this.CheckPoint(circleR, framePic.Width / 2, framePic.Height / 2, (int)e.X, (int)e.Y);
|
| | | if (pointIsRight == false)
|
| | | {
|
| | | //点的区域不是圆盘内
|
| | | return;
|
| | | }
|
| | | //显示白点
|
| | | btnWhiteView.X = (int)e.X;
|
| | | btnWhiteView.Y = (int)e.Y;
|
| | | btnWhiteView.X = (int)e.X - btnWhiteView.Width / 2;
|
| | | btnWhiteView.Y = (int)e.Y - btnWhiteView.Height / 2;
|
| | | if (btnWhiteView.Visible == false)
|
| | | {
|
| | | btnWhiteView.Visible = true;
|
| | | }
|
| | | };
|
| | | colorPic.MouseMoveEventHandler += (sender, e) =>
|
| | | {
|
| | | //当鼠标点下事件处理
|
| | | colorPic.MouseDownEventHandler(sender, e);
|
| | | };
|
| | | }
|
| | |
|
| | |
| | | #region ■ 一般方法___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 检测点击点
|
| | | /// </summary>
|
| | | /// <param name="circleR">圆的半径</param>
|
| | | /// <param name="circleX">圆心X轴</param>
|
| | | /// <param name="circleY">圆心Y轴</param>
|
| | | /// <param name="pointX">点击点的X轴</param>
|
| | | /// <param name="pointY">点击点的Y轴</param>
|
| | | /// <returns></returns>
|
| | | private bool CheckPoint(int circleR, int circleX, int circleY, int pointX, int pointY)
|
| | | {
|
| | | int dwidth = circleX - pointX;
|
| | | if (dwidth < 0) { dwidth *= -1; }
|
| | |
|
| | | int dHeight = circleY - pointY;
|
| | | if (dHeight < 0) { dHeight *= -1; }
|
| | |
|
| | | //根据三角函数,求三角形的斜边长
|
| | | int dlength = dwidth * dwidth + dHeight * dHeight;
|
| | | //半径长度(不开方,所以是按平方算)
|
| | | circleR *= circleR;
|
| | | if (dlength < circleR)
|
| | | {
|
| | | //如果组成的三角形并没有长过半径,则代表还在圆内(不允许点边界)
|
| | | return true;
|
| | | }
|
| | | return false;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化备用颜色的默认值
|
| | | /// </summary>
|
| | | /// <returns></returns>
|