From 489d3bd60ad7dc2fecb398b09cf4c52df16f0fc2 Mon Sep 17 00:00:00 2001
From: Davin <591807572@qq.com>
Date: 星期三, 26 七月 2023 15:55:30 +0800
Subject: [PATCH] Merge branch 'Dev-Branch' of http://59.41.255.150:6688/r/~wxr/OnPro into Dev-Branch

---
 HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs |  504 +++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 395 insertions(+), 109 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs
index 5ecba87..b05731e 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Light/GroupControlPage_V2.cs
@@ -1,5 +1,7 @@
 锘縰sing System;
 using System.Collections.Generic;
+using HDL_ON.Common;
+using HDL_ON.DriverLayer;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
 using Shared;
@@ -31,8 +33,15 @@
             }
         }
 
+        public override void RemoveFromParent()
+        {
+            base.RemoveFromParent();
+        }
+
         public void LoadPage(Button btnCollectionIcon, Button btnFunctionNameOut, Button btnFromFloorOut)
         {
+            bodyView.RemoveAll();
+
             btnCollection_Out = btnCollectionIcon;
             btnFunctionName_Out = btnFunctionNameOut;
             btnFromFloor_Out = btnFromFloorOut;
@@ -91,9 +100,10 @@
             //};
 
 
+           
 
             //鍥為��鍒锋柊淇℃伅浜嬩欢
-            new TopViewDiv(bodyView, Language.StringByID(StringId.CombinedDimming)).LoadTopView_SettingIcon( () => {
+            new TopViewDiv(bodyView, Language.StringByID(StringId.GroupControl)).LoadTopView_SettingIcon( () => {
                 var page = new AddGroupControlPage(function,
                         (newGC) => {
                             try
@@ -102,9 +112,22 @@
                                 {
                                     if (newGC != null)
                                     {
-                                        btnFunctionName.Text = btnFunctionName_Out.Text = function.name;
-                                        function.roomIds = newGC.uids;
-                                        btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = newGC.GetUidListName();
+                                        var localTemp = FunctionList.List.groupControls.Find((obj) => obj.deviceId == newGC.deviceId);
+                                        if(localTemp!= null)
+                                        {
+                                            try
+                                            {
+                                                localTemp.sids = newGC.sids;
+                                                localTemp.name = newGC.name;
+                                                localTemp.roomIds = newGC.roomIds;
+                                                localTemp.uids = newGC.uids;
+                                            }
+                                            catch { }
+                                            function = newGC;
+                                            btnFunctionName_Out.Text = function.name;
+                                            btnFromFloor_Out.Text = function.GetRoomListName();
+                                            LoadPage(btnCollection, btnFunctionName, btnFunctionName);
+                                        }
                                     }
                                 });
                             }
@@ -116,7 +139,7 @@
                             try
                             {
                                 this.RemoveFromParent();
-                                UI.HomePage.RefreshFunctionView();
+                                UI.HomePage.RefreshGroupControlView();
                                 UI.RoomPage.bodyView?.ReLoadPage();
                                 UI.FunctionPage.bodyView?.ReLoadPage();
                             }
@@ -157,10 +180,12 @@
                         }
                     }
                     hadRGB = true;
+                    hadDimming = true;
                 }
                 else if (temp.spk == SPK.LightCCT)
                 {
                     hadCCT = true;
+                    hadDimming = true;
                 }
                 else if (temp.spk == SPK.LightDimming)
                 {
@@ -174,38 +199,17 @@
             }
 
             //灞炴�ц缃尯鍩�
-            var attrView = new VerticalScrolViewLayout()
+            VerticalScrolViewLayout attrView = new VerticalScrolViewLayout()
             {
                 Y = Application.GetRealHeight(52),
                 Width = Application.GetRealWidth(343),
                 ScrollEnabled = false,
             };
-            //灞炴�ц缃尯鍩熼珮搴�
-            int attrViewHight = Application.GetRealHeight(18 + 22);
-
-
             controlView.AddChidren(attrView);
+
             attrView.AddChidren(new Button() { Height = Application.GetRealHeight(18) });
 
-
-            if (hadRGB)
-            {
-                hadCCT = true;
-                LoadRgbAttrView(hadCCT,hadColorful);
-            }
-            else if (hadCCT)
-            {
-                LoadCctAttrView(attrView);
-            }
-            else if (hadDimming)
-            {
-                LoadDimmingAttrView(attrView);
-            }
-            
-
-
-
-            var btnSwitch = new Button()
+            btnSwitch = new Button()
             {
                 Gravity = Gravity.CenterHorizontal,
                 Y = Application.GetRealHeight(466),
@@ -233,7 +237,59 @@
             };
 
 
+            if (hadRGB)
+            {
+                LoadRgbAttrView(hadCCT,hadColorful);
+            }
+            else if (hadCCT)
+            {
+                LoadCctAttrView(attrView);
+            }
+            else if (hadDimming)
+            {
+                LoadDimmingAttrView(attrView);
+            }
+            else
+            {
+                attrView.AddChidren(new Button() { Height = Application.GetRealHeight(30) });
+                var btnSwitchIcon = new Button()
+                {
+                    Gravity = Gravity.CenterHorizontal,
+                    Y = Application.GetRealHeight(102),
+                    Width = Application.GetRealWidth(168),
+                    Height = Application.GetRealWidth(288),
+                    UnSelectedImagePath = "FunctionIcon/Light/RelayBg.png",
+                    SelectedImagePath = "FunctionIcon/Light/RelayOnBg.png",
+                    IsSelected = function.trait_on_off.curValue.ToString() == "on"
+                };
+                attrView.AddChidren(btnSwitchIcon);
+
+                btnSwitchIcon.MouseUpEventHandler = (sender, e) => {
+                    if (btnSwitchIcon.IsSelected)
+                    {
+                        btnSwitchIcon.IsSelected = btnSwitch.IsSelected = false;
+                        var d = new Dictionary<string, string>();
+                        d.Add(FunctionAttributeKey.OnOff, "off");
+                        function.Control(d);
+                    }
+                    else
+                    {
+                        btnSwitchIcon.IsSelected = btnSwitch.IsSelected = true;
+                        var d = new Dictionary<string, string>();
+                        d.Add(FunctionAttributeKey.OnOff, "on");
+                        function.Control(d);
+                    }
+                };
+                btnSwitch.MouseUpEventHandler += (sender, e) => {
+                    btnSwitchIcon.IsSelected = btnSwitch.IsSelected;
+                };
+            }
+
+
+
+
         }
+        Button btnSwitch;
 
         /// <summary>
         /// 鍔犺浇璋冨厜灞炴�ц缃帶浠�
@@ -241,88 +297,100 @@
         /// <param name="attrView"></param>
         void LoadDimmingAttrView(VerticalScrolViewLayout attrView)
         {
-            var dimmingView = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(54 + 11)
-            };
-            attrView.AddChidren(dimmingView);
 
-            #region 浜害璋冭妭
+
+
+            attrView.AddChidren(new Button
+            {
+                Height = Application.GetRealHeight(50),
+            });
+
+            var dimmerView = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(280)
+            };
+            attrView.AddChidren(dimmerView);
+
+            var dimmerBar = new WaveSeekBarOn()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(168 - 40),
+                Height = Application.GetRealHeight(288 - 16 - 16),
+                BorderColor = 0x00000000,
+                CornerRadius = Application.GetRealWidth(30),
+                BorderWidth = 0,
+                Progress = Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.Brightness)),
+                IsProgressTextShow = false,
+            };
+            dimmerView.AddChidren(dimmerBar);
+
             var btnBrightnessText = new Button()
             {
-                X = Application.GetRealWidth(35),
-                Y = Application.GetRealHeight(1),
-                Width = Application.GetRealWidth(224),
-                Height = Application.GetRealHeight(25),
-                TextAlignment = TextAlignment.CenterLeft,
+                Gravity = Gravity.CenterHorizontal,
+                Y = ((100 - Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.Brightness))) * Application.GetRealHeight(222 - 16) / 100),
+                Width = Application.GetRealWidth(56),
+                Height = Application.GetRealWidth(46),
+                UnSelectedImagePath = "FunctionIcon/Light/BrightnessBg.png",
                 TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                TextID = StringId.Brightness,
+                TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
+                Text = Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.Brightness)) + "%",
             };
-            btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + function.GetAttrState(FunctionAttributeKey.Brightness) + "%";
-            dimmingView.AddChidren(btnBrightnessText);
+            dimmerView.AddChidren(btnBrightnessText);
 
-
-            var btnMinValuesText = new Button()
-            {
-                X = Application.GetRealWidth(35),
-                Y = btnBrightnessText.Bottom,
-                Width = Application.GetRealWidth(40),
-                Height = Application.GetRealHeight(21),
-                Text = "0%",
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.PromptingColor1,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-            };
-            dimmingView.AddChidren(btnMinValuesText);
-
-            var dimmerBar = new DiyImageSeekBar()
-            {
-                X = Application.GetRealWidth(45 + 10),
-                Y = Application.GetRealHeight(11),
-                Width = Application.GetRealWidth(220),
-                Height = Application.GetRealHeight(54),
-                SeekBarViewHeight = Application.GetRealHeight(8),
-                ThumbImagePath = "Public/ThumbImage.png",
-                ThumbImageHeight = Application.GetRealHeight(54),
-                ProgressTextColor = CSS_Color.FirstLevelTitleColor,
-                ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                ProgressBarColor = CSS_Color.AuxiliaryColor1,
-                MaxValue = 100,
-                SeekBarPadding = Application.GetRealWidth(20),
-                IsProgressTextShow = false,
-                ProgressChangeDelayTime = 0,
-            };
-            dimmingView.AddChidren(dimmerBar);
             dimmerBar.OnProgressChangedEvent = (sender, e) =>
             {
-                btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + e + "%";
-            };
-            dimmerBar.OnStopTrackingTouchEvent = (sender, e) =>
-            {
-                btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + e + "%";
-
-                var d = new Dictionary<string, string>();
-                d.Add(FunctionAttributeKey.Brightness, e.ToString());
-                function.Control(d);
-            };
+                if (e == 0 && lastBrightness != 0)
+                {
+                    btnSwitch.IsSelected = false;
+                    lastBrightness = 0;
+                }
+                else
+                {
+                    if (lastBrightness == 0)
+                        lastBrightness = e;
+                    btnSwitch.IsSelected = true;
+                }
+                if (e == 0 || e == 100)
+                {
+                    var d = new Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                    function.Control(d);
+                }
+                else
+                {
+                    if (350 < (DateTime.Now - function.refreshTime).TotalMilliseconds)
+                    {
+                        function.refreshTime = DateTime.Now;
+                        new System.Threading.Thread(() =>
+                        {
+                            var d = new Dictionary<string, string>();
+                            d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                            function.Control(d);
+                        })
+                        { IsBackground = true }.Start();
+                    }
+                }
 
 
-            var btnMaxValuesText = new Button()
-            {
-                X = dimmerBar.Right,
-                Y = btnBrightnessText.Bottom,
-                Width = Application.GetRealWidth(55),
-                Height = Application.GetRealHeight(21),
-                Text = "100%",
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.PromptingColor1,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
+                btnBrightnessText.Text = dimmerBar.Progress + "%";
             };
-            dimmingView.AddChidren(btnMaxValuesText);
-            #endregion
+
+            btnSwitch.MouseUpEventHandler += (sender, e) => {
+                if (btnSwitch.IsSelected)
+                {
+                    dimmerBar.Progress = 100;
+                }
+                else
+                {
+                    dimmerBar.Progress = 0;
+                }
+                btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
+                btnBrightnessText.Text = dimmerBar.Progress + "%";
+            };
 
         }
+        int lastBrightness = 0;
 
         /// <summary>
         /// 鍔犺浇cct灞炴�ц缃帶浠�
@@ -330,6 +398,98 @@
         /// <param name="attrView"></param>
         void LoadCctAttrView(VerticalScrolViewLayout attrView)
         {
+            attrView.AddChidren(new Button
+            {
+                Height = Application.GetRealHeight(20),
+            });
+
+            var dimmerView = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(280)
+            };
+            attrView.AddChidren(dimmerView);
+
+            var dimmerBar = new WaveSeekBarOn()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(168 - 40),
+                Height = Application.GetRealHeight(288 - 16 - 16),
+                BorderColor = 0x00000000,
+                CornerRadius = Application.GetRealWidth(30),
+                BorderWidth = 0,
+                Progress = Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.Brightness)),
+                IsProgressTextShow = false,
+            };
+            dimmerView.AddChidren(dimmerBar);
+
+            var btnBrightnessText = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = ((100 - Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.Brightness))) * Application.GetRealHeight(222 - 16) / 100),
+                Width = Application.GetRealWidth(56),
+                Height = Application.GetRealWidth(46),
+                UnSelectedImagePath = "FunctionIcon/Light/BrightnessBg.png",
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
+                Text = Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.Brightness)) + "%",
+            };
+            dimmerView.AddChidren(btnBrightnessText);
+
+            dimmerBar.OnProgressChangedEvent = (sender, e) =>
+            {
+                if (e == 0 && lastBrightness != 0)
+                {
+                    btnSwitch.IsSelected = false;
+                    lastBrightness = 0;
+                }
+                else
+                {
+                    if (lastBrightness == 0)
+                        lastBrightness = e;
+                    btnSwitch.IsSelected = true;
+                }
+
+                if (e == 0 || e == 100)
+                {
+                    var d = new Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                    function.Control(d);
+                }
+                else
+                {
+                    if (350 < (DateTime.Now - function.refreshTime).TotalMilliseconds)
+                    {
+                        function.refreshTime = DateTime.Now;
+                        new System.Threading.Thread(() =>
+                        {
+                            var d = new Dictionary<string, string>();
+                            d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                            function.Control(d);
+                        })
+                        { IsBackground = true }.Start();
+                    }
+                }
+
+
+                btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
+                btnBrightnessText.Text = dimmerBar.Progress + "%";
+            };
+
+            btnSwitch.MouseUpEventHandler += (sender, e) => {
+                if (btnSwitch.IsSelected)
+                {
+                    dimmerBar.Progress = 100;
+                }
+                else
+                {
+                    dimmerBar.Progress = 0;
+                }
+                btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100);
+                btnBrightnessText.Text = dimmerBar.Progress + "%";
+            };
+
+            //attrView.AddChidren(new Button() { Height = Application.GetRealHeight(10) });
+
             #region 鑹叉俯
             var cctView = new FrameLayout()
             {
@@ -385,6 +545,7 @@
                 Y = Application.GetRealHeight(11),
                 Width = Application.GetRealWidth(220),
                 Height = Application.GetRealHeight(54),
+                Progress = 38,
             };
             barColorTemplatrue.MinValue = 27;
             barColorTemplatrue.MaxValue = 65;
@@ -490,6 +651,52 @@
             btnWhiteRound.Visible = false;
             framePickerBack.AddChidren(btnWhiteRound);
 
+
+            //褰撳墠鐐瑰嚮鐨勩�愮偣銆戞槸鍚︽纭�
+            bool pointIsRight = false;
+            //鍦嗙殑鍗婂緞(鑰冭檻杈圭晫,闇�瑕佽缃畠鐨勫崐寰勬瘮杈冨皬涓�鐐�)
+            int circleR = colorPicker.Width / 2 - Application.GetRealWidth(12);
+            string rgbString = "255,255,255";
+            var rgbTemp = new Light();
+            colorPicker.MouseUpEventHandler = (sender2, e2) =>
+            {
+                var d = new Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.RGB, rgbString);
+                function.Control(d);
+            };
+            colorPicker.ColorChaged += (sender2, e2) =>
+            {
+                rgbString = (e2[0] + "," + e2[1] + "," + e2[2]).ToString();
+                btnCurColor.BackgroundColor = (uint)(0xFF000000 + rgbTemp.GetRGBcolor(rgbString));
+                var d = new Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.RGB, rgbString);
+                function.Control(d);
+            };
+            colorPicker.MouseDownEventHandler += (sender, e) =>
+            {
+                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);
+            };
+
+
+
             #region 浜害璋冭妭
             var btnBrightnessText = new Button()
             {
@@ -535,6 +742,43 @@
             };
             controlView.AddChidren(dimmerBar);
 
+
+            dimmerBar.OnProgressChangedEvent = (sender, e) =>
+            {
+                if (e == 0 && lastBrightness != 0)
+                {
+                    btnSwitch.IsSelected = false;
+                    lastBrightness = 0;
+                }
+                else
+                {
+                    if (lastBrightness == 0)
+                        lastBrightness = e;
+                    btnSwitch.IsSelected = true;
+                }
+                if (e == 0 || e == 100)
+                {
+                    var d = new Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                    function.Control(d);
+                }
+                else
+                {
+                    if (350 < (DateTime.Now - function.refreshTime).TotalMilliseconds)
+                    {
+                        function.refreshTime = DateTime.Now;
+                        new System.Threading.Thread(() =>
+                        {
+                            var d = new Dictionary<string, string>();
+                            d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                            function.Control(d);
+                        })
+                        { IsBackground = true }.Start();
+                    }
+                }
+            };
+
+
             var btnMaxValuesText = new Button()
             {
                 X = dimmerBar.Right,
@@ -547,6 +791,17 @@
                 TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
             };
             controlView.AddChidren(btnMaxValuesText);
+
+            btnSwitch.MouseUpEventHandler += (sender, e) => {
+                if (btnSwitch.IsSelected)
+                {
+                    dimmerBar.Progress = 100;
+                }
+                else
+                {
+                    dimmerBar.Progress = 0;
+                }
+            };
             #endregion
 
             int heightMore = 375 - magriHeight-20;
@@ -612,6 +867,7 @@
                 };
                 barColorTemplatrue.MinValue = 27;
                 barColorTemplatrue.MaxValue = 65;
+                barColorTemplatrue.Progress = 38;
                 barColorTemplatrue.ProgressBarColor = 0x00000000;//鍏ㄩ儴閫忔槑
                 barColorTemplatrue.ProgressBarUnEnableColor = 0x00000000;
                 barColorTemplatrue.SeekBarBackgroundColor = 0x00000000;
@@ -635,7 +891,7 @@
                 //6500K
                 var btnTempClolorMax = new Button();
                 btnTempClolorMax.Y = btnTempClolorMin.Y;
-                btnTempClolorMax.X = barColorTemplatrue.Right - Application.GetRealWidth(30);
+                btnTempClolorMax.X = barColorTemplatrue.Right - Application.GetRealWidth(15);
                 btnTempClolorMax.Width = Application.GetRealWidth(54);
                 btnTempClolorMax.Height = Application.GetRealHeight(21);
                 btnTempClolorMax.Text = "6500K";
@@ -658,7 +914,7 @@
                 var btnGradualChangeText = new Button()
                 {
                     X = Application.GetRealWidth(35),
-                    Y = Application.GetRealHeight(375 + heightMore - magriHeight),
+                    Y = hadCCT ? Application.GetRealHeight(375 + heightMore - magriHeight) : Application.GetRealHeight(heightMore+10),
                     Width = Application.GetRealWidth(224),
                     Height = Application.GetRealHeight(21),
                     TextAlignment = TextAlignment.CenterLeft,
@@ -668,16 +924,17 @@
                 };
                 controlView.AddChidren(btnGradualChangeText);
 
-                var btnGradualChangeMinValuesText = new Button()
+                var btnColorfulEdit = new Button()
                 {
                     X = Application.GetRealWidth(35),
                     Y = btnGradualChangeText.Bottom + Application.GetRealHeight(10),
                     Width = Application.GetRealWidth(22),
                     Height = Application.GetRealHeight(21),
                     UnSelectedImagePath = "Public/Edit.png",
+                    Visible = false,
                 };
-                controlView.AddChidren(btnGradualChangeMinValuesText);
-                btnGradualChangeMinValuesText.MouseUpEventHandler = (sender, e) => {
+                controlView.AddChidren(btnColorfulEdit);
+                btnColorfulEdit.MouseUpEventHandler = (sender, e) => {
                     var rgbView = new ColorfulInfoPage(function);
                     MainPage.BasePageView.AddChidren(rgbView);
                     rgbView.LoadPage();
@@ -686,29 +943,54 @@
 
                 var barColorful = new FrameLayout()
                 {
-                    X = btnGradualChangeMinValuesText.Right + Application.GetRealWidth(15+5),
-                    Y = Application.GetRealHeight(412 + heightMore - magriHeight),
+                    X = btnColorfulEdit.Right + Application.GetRealWidth(15 + 5),
                     Width = Application.GetRealWidth(170),
+                    //X = Application.GetRealWidth(35),
+                    //Width = Application.GetRealWidth(170 + 41),
+                    Y = hadCCT ? Application.GetRealHeight(412 + heightMore - magriHeight) : Application.GetRealHeight(heightMore + 50),
                     Height = Application.GetRealHeight(8),
                     BackgroundImagePath = "FunctionIcon/Light/ColorfulBar.png",
                 };
                 controlView.AddChidren(barColorful);
 
-                var btnGradualChangeMaxValuesText = new Button()
+                var btnColorfulSwitch = new Button()
                 {
                     X = barColorful.Right + Application.GetRealWidth(8),
                     Y = btnGradualChangeText.Bottom + Application.GetRealHeight(10),
                     Width = Application.GetRealWidth(38),
                     Height = Application.GetRealHeight(24),
-                    UnSelectedImagePath = "Public/Switch.png"
+                    UnSelectedImagePath = "Public/Switch.png",
+                    SelectedImagePath = "Public/SwitchOn.png"
                 };
-                controlView.AddChidren(btnGradualChangeMaxValuesText);
+                controlView.AddChidren(btnColorfulSwitch);
+
+
+                btnColorfulSwitch.MouseUpEventHandler = (sender, e) => {
+                    btnColorfulSwitch.IsSelected = !btnColorfulSwitch.IsSelected;
+                    new System.Threading.Thread(() =>
+                    {
+                        try
+                        {
+                            var controlColorfulState = btnColorfulSwitch.IsSelected ? "on" : "off";
+                            function.SetAttrState(FunctionAttributeKey.Colorful, controlColorfulState);
+                            var d = new Dictionary<string, string>();
+                            d.Add(FunctionAttributeKey.Colorful, controlColorfulState);
+                            function.Control(d);
+                        }
+                        catch (Exception ex)
+                        {
+                            MainPage.Log($"鎺у埗鐐僵寮�鍏冲紓甯�:{ex.Message}");
+                        }
+                    })
+                    { IsBackground = true }.Start();
+                };
+
                 #endregion
 
 
             }
 
-         
+
 
         }
 
@@ -742,5 +1024,9 @@
             return false;
         }
 
+
+
+
+
     }
 }

--
Gitblit v1.8.0