old mode 100644
new mode 100755
| | |
| | | bodyView.dimmerBar.Progress = uFunction.brightness; |
| | | } |
| | | } |
| | | else |
| | | //状态一样时,不再刷新视图 |
| | | else if (uFunction.trait_on_off.curValue.ToString() == "off" && bodyView.btnSwitch.IsSelected == true) |
| | | { |
| | | bodyView.colorPicker.ColorImagePath = "FunctionIcon/Light/ColorWheelGray.png"; |
| | | bodyView.dimmerBar.ProgressBarColor = CSS.CSS_Color.PromptingColor2; |
| | | bodyView.btnSwitch.IsSelected = false; |
| | | //色盘的圆点隐藏 |
| | | bodyView.btnWhiteRound.Visible = false; |
| | | } |
| | | } |
| | | } |
| | |
| | | void LoadColorChangeEvent() |
| | | { |
| | | DateTime colorChangeTime = DateTime.MinValue; |
| | | |
| | | //当前点击的【点】是否正确 |
| | | bool pointIsRight = false; |
| | | //圆的半径(考虑边界,需要设置它的半径比较小一点) |
| | | int circleR = colorPicker.Width / 2 - Application.GetRealWidth(12); |
| | | |
| | | colorPicker.ColorChaged += (sender2, e2) => { |
| | | if(light.trait_on_off.curValue.ToString() == "off") |
| | | if (light.trait_on_off.curValue.ToString() == "off" |
| | | || pointIsRight == false) |
| | | { |
| | | //pointIsRight:点的区域不是圆盘内 |
| | | return; |
| | | } |
| | | if ((DateTime.Now - colorChangeTime).TotalMilliseconds > 200) |
| | |
| | | Control.Ins.SendWriteCommand(light, d); |
| | | } |
| | | }; |
| | | colorPicker.MouseUpEventHandler = (sender, e) => |
| | | colorPicker.MouseDownEventHandler += (sender, e) => |
| | | { |
| | | var ss = btnCurColor.BackgroundColor; |
| | | if (light.trait_on_off.curValue.ToString() == "off") |
| | | { |
| | | return; |
| | | } |
| | | pointIsRight = this.CheckPoint(circleR, colorPicker.Width / 2, colorPicker.Height / 2, (int)e.X, (int)e.Y); |
| | | if (pointIsRight == false) |
| | | { |
| | | //点的区域不是圆盘内 |
| | | return; |
| | | } |
| | | //显示白点 |
| | | btnWhiteRound.X = (int)e.X - btnWhiteRound.Width / 2; |
| | | btnWhiteRound.Y = (int)e.Y - btnWhiteRound.Height / 2; |
| | | if (btnWhiteRound.Visible == false) |
| | | { |
| | | btnWhiteRound.Visible = true; |
| | | } |
| | | }; |
| | | |
| | | colorPicker.MouseMoveEventHandler += (sender, e) => |
| | | { |
| | | //当鼠标点下事件处理 |
| | | colorPicker.MouseDownEventHandler(sender, e); |
| | | }; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 收藏功能按钮事件 |
| | |
| | | Control.Ins.SendWriteCommand(light, d); |
| | | }; |
| | | } |
| | | |
| | | /// <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; |
| | | } |
| | | } |
| | | } |