From 39cf2411b59772d56ee731f229f09ff472889bad Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期四, 22 九月 2022 15:12:04 +0800
Subject: [PATCH] Merge branch 'Dev-Branch' into hxb

---
 HDL_ON/UI/UI2/FuntionControlView/Acst/AcstParentPage.cs |  803 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 803 insertions(+), 0 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Acst/AcstParentPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Acst/AcstParentPage.cs
new file mode 100644
index 0000000..9c1d100
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/Acst/AcstParentPage.cs
@@ -0,0 +1,803 @@
+锘縰sing System;
+using System.Collections.Generic;
+using HDL_ON.Entity;
+using Shared;
+
+namespace HDL_ON.UI
+{
+
+
+    /// <summary>
+	/// 缁垮缓绉戞妧绯荤粺
+    /// 鎬绘帶涓婚〉
+	/// </summary>
+    public class AcstParentPage : FrameLayout
+    {
+        static AcstParentPage basePage;
+
+        VerticalScrolViewLayout bodyView;
+
+        #region 澶╂皵鎺т欢
+        Button btnOutdoorTemp;
+        Button btnWeather;
+        TextButton btnHumidityValues;
+        TextButton btnPm25Values;
+        #endregion
+
+        #region 浼犳劅鍣ㄣ�佽�楃數閲忕粍浠�
+        SensorDiyView sensorDiyView_Temp;
+        SensorDiyView sensorDiyView_Humi;
+        SensorDiyView sensorDiyView_Pm25;
+        SensorDiyView sensorDiyView_Co2;
+        SensorDiyView sensorDiyView_Tvoc;
+        SensorDiyView sensorDiyView_EleDay;
+        SensorDiyView sensorDiyView_EleMonth;
+        SensorDiyView sensorDiyView_EleTotal;
+        #endregion
+        /// <summary>
+        /// 瀛愭帶鍖哄煙鍒楄〃
+        /// </summary>
+        Dictionary<string, AcstSubControlView> subViewList;
+
+
+        public override void RemoveFromParent()
+        {
+            base.RemoveFromParent();
+            basePage = null;
+        }
+
+        Function function;
+        /// <summary>
+        /// 褰撳墠鏃舵棰滆壊
+        /// </summary>
+        uint curColor = CSS.CSS_Color.MainColor;
+
+        string imageFolder = "blue";
+
+        public AcstParentPage()
+        {
+            basePage = this;
+            this.function = FunctionList.List.GetAcstParentList()[0];
+            this.BackgroundColor = CSS.CSS_Color.BackgroundColor;
+            bodyView = new VerticalScrolViewLayout();
+            this.AddChidren(bodyView);
+            subViewList = new Dictionary<string, AcstSubControlView>();
+        }
+        /// <summary>
+        /// 鏇存柊澶╂皵淇℃伅
+        /// </summary>
+        public void InitGetWeatherAction()
+        {
+            MainPage.CityWeatherAction = () =>
+            {
+                Application.RunOnMainThread(() =>
+                {
+                    btnOutdoorTemp.Text = MainPage.cityInfo.temperature + "掳";
+                    btnWeather.Text = MainPage.cityInfo.weather;
+                    btnHumidityValues.Text = MainPage.cityInfo.humidity + "%";
+                    btnHumidityValues.Width = btnHumidityValues.GetTextWidth() + Application.GetRealWidth(10);
+                    btnPm25Values.Text = MainPage.cityInfo.pm25;
+                    btnPm25Values.Width = btnPm25Values.GetTextWidth() + Application.GetRealWidth(10);
+                });
+            };
+        }
+        /// <summary>
+        /// 浼犳劅鍣ㄣ�佽�楃數閲忕粍浠�
+        /// </summary>
+        public static void UpdateAcstParentInfo(Function temp)
+        {
+            if (basePage == null)
+            {
+                return;
+            }
+            if (basePage.sensorDiyView_Temp != null)
+                basePage.sensorDiyView_Temp.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.room_temp.ToString()).curValue.ToString());
+            if (basePage.sensorDiyView_Humi != null)
+                basePage.sensorDiyView_Humi.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.room_humidity.ToString()).curValue.ToString());
+            if (basePage.sensorDiyView_Pm25 != null)
+                basePage.sensorDiyView_Pm25.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.pm25.ToString()).curValue.ToString());
+            if (basePage.sensorDiyView_Co2 != null)
+                basePage.sensorDiyView_Co2.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.co2.ToString()).curValue.ToString());
+            if (basePage.sensorDiyView_Tvoc != null)
+                basePage.sensorDiyView_Tvoc.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.tvoc.ToString()).curValue.ToString());
+            if (basePage.sensorDiyView_EleDay != null)
+                basePage.sensorDiyView_EleDay.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.day_electricity.ToString()).curValue.ToString());
+            if (basePage.sensorDiyView_EleMonth != null)
+                basePage.sensorDiyView_EleMonth.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.month_electricity.ToString()).curValue.ToString());
+            if (basePage.sensorDiyView_EleTotal != null)
+                basePage.sensorDiyView_EleTotal.UpdateValue(temp.GetAttribute(AcstParent_AttrEnum.total_electricity.ToString()).curValue.ToString());
+        }
+
+        /// <summary>
+        /// 鏇存柊瀛愭帶淇℃伅
+        /// </summary>
+        /// <param name="temp"></param>
+        public static void UpdateAcstSubInfo(Function temp)
+        {
+            if(basePage == null)
+            {
+                return;
+            }
+            Application.RunOnMainThread(() => {
+                var view = basePage.subViewList[temp.sid];
+                if(view!= null)
+                {
+                    view.btnSubHumidityValues.Text = temp.GetAttrState(AcstSub_AttrEnum.room_humidity.ToString()) + "%";
+                    view.btnSubTempValues.Text = temp.GetAttrState(AcstSub_AttrEnum.room_humidity.ToString()) + "%";
+                    view.btnSubPower.IsSelected = temp.GetAttrState(AcstSub_AttrEnum.on_off.ToString()) == "on";
+                }
+            });
+        }
+
+        public void LoadPage()
+        {
+            var curTime = DateTime.Now;
+            string helloText = "涓婂崍濂�";
+            if (curTime.Hour >= 8 && curTime.Hour < 12)
+            {
+                helloText = "涓婂崍濂�";
+                curColor = CSS.CSS_Color.MainColor;
+                imageFolder = "blue";
+            }
+            else if (curTime.Hour >= 12 && curTime.Hour < 18)
+            {
+                helloText = "涓嬪崍濂�";
+                curColor = 0xFFE7914F;
+                imageFolder = "orange";
+            }
+            else
+            {
+                helloText = "鏅氫笂濂�";
+                curColor = 0xFF9175F3;
+                imageFolder = "purple";
+            }
+
+            #region 澶撮儴淇℃伅鍖哄煙
+            FrameLayout topView = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(181),
+                BackgroundColor = 0xFFb0eafa,
+                BackgroundImagePath = $"FunctionIcon/Acst/{imageFolder}/TopViewBg.png",
+            };
+            bodyView.AddChidren(topView);
+
+            var backView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(32),
+                Width = Application.GetRealWidth(100),
+                Height = Application.GetRealHeight(34),
+            };
+            topView.AddChidren(backView);
+
+            Button btnBackIcon = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                Width = Application.GetRealWidth(40),
+                Height = Application.GetRealWidth(28),
+                UnSelectedImagePath = "Public/BackIcon.png",
+            };
+            backView.AddChidren(btnBackIcon);
+
+            btnBackIcon.MouseUpEventHandler = (sender, e) => {
+                this.RemoveFromParent();
+            };
+
+            var btnHelloText = new Button()
+            {
+                X = Application.GetRealWidth(25),
+                Y = Application.GetRealHeight(55),
+                Width = Application.GetRealWidth(200),
+                Height = Application.GetRealHeight(38),
+                TextSize = 20,
+                Text = helloText,
+                TextColor = 0xFFFFFFFF,
+                TextAlignment = TextAlignment.CenterLeft,
+            };
+            topView.AddChidren(btnHelloText);
+
+            
+            btnOutdoorTemp = new Button()
+            {
+                X = Application.GetRealWidth(25),
+                Y = Application.GetRealHeight(90),
+                Width = Application.GetRealWidth(85),
+                Height = Application.GetRealHeight(66),
+                TextColor = 0xFFFFFFFF,
+                TextSize = 50,
+                TextAlignment = TextAlignment.TopLeft,
+                Text = MainPage.cityInfo.temperature + "掳"
+            };
+            topView.AddChidren(btnOutdoorTemp);
+
+            btnWeather = new Button()
+            {
+                X = btnOutdoorTemp.Right,
+                Y = Application.GetRealHeight(95),
+                Width = Application.GetRealWidth(80),
+                Height = Application.GetRealHeight(26),
+                Text = MainPage.cityInfo.weather,
+                TextColor = 0xFFFFFFFF,
+                TextSize = 14,
+                TextAlignment = TextAlignment.CenterLeft,
+            };
+            topView.AddChidren(btnWeather);
+
+
+            var environmentalView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(150),
+                Height = Application.GetRealHeight(32),
+            };
+            topView.AddChidren(environmentalView);
+
+            var btnHumidityIcon = new Button()
+            {
+                X = Application.GetRealWidth(25),
+                Gravity = Gravity.CenterVertical,
+                Width = Application.GetMinRealAverage(16),
+                Height = Application.GetMinRealAverage(16),
+                UnSelectedImagePath = "Public/DeviceInfoIcon/HumidityIcon.png",
+            };
+            environmentalView.AddChidren(btnHumidityIcon);
+
+            btnHumidityValues = new TextButton()
+            {
+                X = btnHumidityIcon.Right + Application.GetRealWidth(4),
+                Gravity = Gravity.CenterVertical,
+                TextColor = 0xFFFFFFFF,
+                TextSize = 16,
+                Text = MainPage.cityInfo.humidity + "%",
+                TextAlignment = TextAlignment.CenterLeft,
+            };
+            btnHumidityValues.Width = btnHumidityValues.GetTextWidth();
+            environmentalView.AddChidren(btnHumidityValues);
+
+            var btnPm25Icon = new Button()
+            {
+                X = btnHumidityValues.Right + Application.GetRealWidth(14),
+                Gravity = Gravity.CenterVertical,
+                Width = Application.GetMinRealAverage(16),
+                Height = Application.GetMinRealAverage(16),
+                UnSelectedImagePath = "Public/DeviceInfoIcon/Pm25Icon.png",
+            };
+            environmentalView.AddChidren(btnPm25Icon);
+
+            btnPm25Values = new TextButton()
+            {
+                X = btnPm25Icon.Right + Application.GetRealWidth(4),
+                Gravity = Gravity.CenterVertical,
+                TextColor = 0xFFFFFFFF,
+                TextSize = 16,
+                Text = MainPage.cityInfo.pm25,
+                TextAlignment = TextAlignment.CenterLeft,
+            };
+            btnPm25Values.Width = btnPm25Values.GetTextWidth();
+            environmentalView.AddChidren(btnPm25Values);
+
+
+            #endregion
+
+            bodyView.AddChidren(new Button
+            {
+                Height = Application.GetRealHeight(8),
+            });
+
+            #region 鏁版嵁
+            var infoView = new FrameLayout()
+            {
+                Y = topView.Bottom,
+                Height = Application.GetRealHeight(104),
+                BackgroundColor = CSS.CSS_Color.MainBackgroundColor,
+            };
+            bodyView.AddChidren(infoView);
+
+            var infoContentView = new FrameLayout()
+            {
+                Gravity = Gravity.Center,
+                Width = Application.GetRealWidth(343),
+                Height = Application.GetRealHeight(72),
+                BackgroundImagePath = $"FunctionIcon/Acst/{imageFolder}/MsgViewBg.png",
+            };
+            infoView.AddChidren(infoContentView);
+
+            #region 浼犳劅鍣ㄦ暟鎹�
+            int sensorCount = 0;
+            var tempObj = function.GetAttribute(AcstParent_AttrEnum.room_temp.ToString());
+            if(tempObj!= null)
+            {
+                sensorCount++;
+            }
+            var humiObj = function.GetAttribute(AcstParent_AttrEnum.room_humidity.ToString());
+            if(humiObj != null)
+            {
+                sensorCount++;
+            }
+            var pm25Obj = function.GetAttribute(AcstParent_AttrEnum.pm25.ToString());
+            if (pm25Obj != null)
+            {
+                sensorCount++;
+            }
+            var co2Obj = function.GetAttribute(AcstParent_AttrEnum.co2.ToString());
+            if (co2Obj != null)
+            {
+                sensorCount++;
+            }
+            var tvocObj = function.GetAttribute(AcstParent_AttrEnum.tvoc.ToString());
+            if (tvocObj != null)
+            {
+                sensorCount++;
+            }
+
+            var sensorListView = new HorizontalScrolViewLayout()
+            {
+                Width = Application.GetRealWidth(60 * sensorCount),
+                Gravity = Gravity.Center,
+            };
+            infoContentView.AddChidren(sensorListView);
+
+
+            if (tempObj != null)
+            {
+                sensorDiyView_Temp = new SensorDiyView(sensorListView, curColor, tempObj.curValue.ToString() + "掳", "娓╁害");
+            }
+            if (humiObj != null)
+            {
+                sensorDiyView_Humi = new SensorDiyView(sensorListView, curColor, humiObj.curValue.ToString() + "%", "婀垮害");
+            }
+            if (pm25Obj != null)
+            {
+                sensorDiyView_Pm25 = new SensorDiyView(sensorListView, curColor, pm25Obj.curValue.ToString(), "PM2.5");
+            }
+            if (co2Obj != null)
+            {
+                sensorDiyView_Co2 = new SensorDiyView(sensorListView, curColor, co2Obj.curValue.ToString(), "CO2");
+            }
+            if (tvocObj != null)
+            {
+                sensorDiyView_Tvoc = new SensorDiyView(sensorListView, curColor, tvocObj.curValue.ToString(), "TVOC");
+            }
+            #endregion
+
+            #region 鑳借�楁暟鎹�
+            int energyCount = 0;
+            var dayObj = function.GetAttribute(AcstParent_AttrEnum.day_electricity.ToString());
+            if (dayObj != null)
+            {
+                energyCount++;
+            }
+            var monthObj = function.GetAttribute(AcstParent_AttrEnum.month_electricity.ToString());
+            if (monthObj != null)
+            {
+                energyCount++;
+            }
+            var totalObj = function.GetAttribute(AcstParent_AttrEnum.total_electricity.ToString());
+            if (totalObj != null)
+            {
+                energyCount++;
+            }
+
+            var energyListView = new HorizontalScrolViewLayout()
+            {
+                Width = Application.GetRealWidth(60 * energyCount),
+                Gravity = Gravity.Center,
+                Visible = false,
+            };
+            infoContentView.AddChidren(energyListView);
+            if (dayObj != null)
+            {
+                sensorDiyView_EleDay = new SensorDiyView(energyListView, curColor, dayObj.curValue.ToString(), "浠婃棩鑰楃數");
+            }
+            if (monthObj != null)
+            {
+                sensorDiyView_EleMonth = new SensorDiyView(energyListView, curColor, monthObj.curValue.ToString(), "鏈湀鑰楃數");
+            }
+            if (totalObj != null)
+            {
+                sensorDiyView_EleTotal = new SensorDiyView(energyListView, curColor, totalObj.curValue.ToString(), "鎬昏�楃數閲�");
+            }
+
+            var btnChangeClick = new Button();
+            infoView.AddChidren(btnChangeClick);
+
+            bool showSensor = true;
+            EventHandler<MouseEventArgs> changeInfoEvent = (sender, e) => {
+                if (showSensor)
+                {
+                    sensorListView.Visible = false;
+                    showSensor = false;
+                    energyListView.Visible = true;
+                }
+                else
+                {
+                    sensorListView.Visible = true;
+                    showSensor = true;
+                    energyListView.Visible = false;
+                }
+            };
+            btnChangeClick.MouseUpEventHandler = changeInfoEvent;
+
+
+            #endregion
+
+            #endregion
+
+            #region 瀛愭帶鍒楄〃
+
+            var subTitleView = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(54-11),
+            };
+            bodyView.AddChidren(subTitleView);
+
+            var btnCollection = new Button()
+            {
+                X = Application.GetRealWidth(6),
+                Y = Application.GetRealHeight(10),
+                Width = Application.GetRealWidth(39),
+                Height = Application.GetRealWidth(39),
+                IsSelected = function.collect,
+                UnSelectedImagePath = "FunctionIcon/Acst/grey/CollectionIcon.png",
+                SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/CollectionIcon.png",
+            };
+            subTitleView.AddChidren(btnCollection);
+            //鏀惰棌
+            btnCollection.MouseUpEventHandler = (sender, e) => {
+                function.collect = !function.collect;
+                btnCollection.IsSelected = function.collect;
+
+                //var http = new DAL.Server.HttpServerRequest();
+                //http.CollectDevice(function.deviceId);
+                function.CollectFunction();
+
+            };
+
+            var btnTitleText = new Button()
+            {
+                X = btnCollection.Right,
+                Text = "鎴戠殑瀹跺涵",
+                TextSize = 16,
+                TextColor = 0xFF242424,
+                TextAlignment = TextAlignment.CenterLeft,
+                IsBold = true,
+                Height = Application.GetRealHeight(54),
+            };
+            subTitleView.AddChidren(btnTitleText);
+
+            int subFunctionCount = 0;
+
+            var subFunctionListView = new HorizontalScrolViewLayout()
+            {
+                Height = Application.GetRealHeight(88),
+            };
+            bodyView.AddChidren(subFunctionListView);
+
+
+            subFunctionListView.AddChidren(new Button { Width = Application.GetRealWidth(9) });
+            foreach (var sub in FunctionList.List.GetAcstSubList())
+            {
+                if (subViewList.ContainsKey(sub.sid))
+                {
+                    continue;
+                }
+
+                if (subFunctionCount > 0 && subFunctionCount % 2 == 0)
+                {
+                    subFunctionListView = new HorizontalScrolViewLayout()
+                    {
+                        Height = Application.GetRealHeight(93),
+                    };
+                    bodyView.AddChidren(subFunctionListView);
+                    subFunctionListView.AddChidren(new Button { Width = Application.GetRealWidth(9) });
+                }
+
+                AcstSubControlView subFunctionView = new AcstSubControlView(sub, subFunctionListView,imageFolder);
+
+                subViewList.Add(sub.sid, subFunctionView);
+
+
+
+                subFunctionCount++;
+            }
+
+            #endregion
+
+            bodyView.AddChidren(new Button()
+            {
+                Height = Application.GetRealHeight(72),
+            });
+
+            #region 搴曢儴鎺у埗鏍�
+            var bottomView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(667 - 56),
+                Height = Application.GetRealHeight(56),
+                BackgroundColor = CSS.CSS_Color.MainBackgroundColor,
+            };
+            this.AddChidren(bottomView);
+
+            var btnModeControl = new Button()
+            {
+                X = Application.GetRealWidth(89),
+                Gravity = Gravity.CenterVertical,
+                Width = Application.GetRealWidth(38),
+                Height = Application.GetRealWidth(38),
+                UnSelectedImagePath = "FunctionIcon/Acst/grey/ModeCoolIcon2.png",
+                SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/ModeCoolIcon2.png",
+                TextAlignment = TextAlignment.Center,
+            };
+            bottomView.AddChidren(btnModeControl);
+            btnModeControl.MouseUpEventHandler = (sender, e) =>
+            {
+                Dialog dialog = new Dialog();
+
+                var dialogView = new FrameLayout();
+                dialog.AddChidren(dialogView);
+                dialogView.MouseUpEventHandler = (sender, e) => {
+                    dialog.Close();
+                };
+
+                var dialogContentView = new FrameLayout() {
+                    X = Application.GetRealWidth(34),
+                    Y = Application.GetRealHeight(291),
+                    Width = Application.GetRealWidth(144),
+                    Height = Application.GetRealHeight(291),
+                    BackgroundImagePath = "FunctionIcon/Acst/BgChooseMode.png",
+                };
+                dialogView.AddChidren(dialogContentView);
+
+                var titleView = new FrameLayout() {
+                    X = Application.GetRealWidth(2),
+                    Y = Application.GetRealHeight(3),
+                    Width = Application.GetRealWidth(144),
+                    Height = Application.GetRealHeight(44),
+                };
+                dialogContentView.AddChidren(titleView);
+                var btnTitleText = new Button()
+                {
+                    X = Application.GetRealWidth(16),
+                    Width = Application.GetRealWidth(100),
+                    Text = "閫夋嫨妯″紡",
+                    TextSize = 16,
+                    TextColor = CSS.CSS_Color.FirstLevelTitleColor,
+                    IsBold = true,
+                    TextAlignment = TextAlignment.CenterLeft,
+                };
+                titleView.AddChidren(btnTitleText);
+
+
+
+
+
+                dialog.Show();
+            };
+
+            var btnPowerControl = new Button()
+            {
+                Gravity = Gravity.Center,
+                Width = Application.GetRealWidth(38),
+                Height = Application.GetRealWidth(38),
+                UnSelectedImagePath = "FunctionIcon/Acst/grey/PowerOffIcon.png",
+                SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/PowerOnIcon.png",
+                TextAlignment = TextAlignment.Center,
+            };
+            bottomView.AddChidren(btnPowerControl);
+
+
+            var btnWorkSceneControl = new Button()
+            {
+                Gravity = Gravity.CenterVertical,
+                X = Application.GetRealWidth(249),
+                Width = Application.GetRealWidth(38),
+                Height = Application.GetRealWidth(38),
+                UnSelectedImagePath = "FunctionIcon/Acst/grey/SceneSleepIcon2.png",
+                SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/SceneSleepIcon2.png",
+                TextAlignment = TextAlignment.Center,
+            };
+            bottomView.AddChidren(btnWorkSceneControl);
+
+
+
+
+            #endregion
+
+
+
+
+
+
+
+            InitGetWeatherAction();
+
+        }
+
+
+
+    }
+
+    /// <summary>
+    /// 浼犳劅鍣ㄦ暟鎹粍浠�
+    /// </summary>
+    public class SensorDiyView
+    {
+        private FrameLayout contentView;
+        private Button btnValue;
+        private Button btnText;
+        public string Tag;
+
+        public SensorDiyView(HorizontalScrolViewLayout view,uint color,string value,string text)
+        {
+            ///榛樿Tag 涓轰紶杩涙潵鐨凾ext
+            Tag = text;
+
+            contentView = new FrameLayout()
+            {
+                Width = Application.GetRealWidth(60),
+                Height = Application.GetRealHeight(72),
+            };
+            view.AddChidren(contentView);
+
+            btnValue = new Button()
+            {
+                Y = Application.GetRealHeight(10),
+                Height = Application.GetRealHeight(72 - 37),
+                TextAlignment = TextAlignment.Center,
+                TextColor = color,
+                TextSize = 20,
+                Text = value,
+            };
+            contentView.AddChidren(btnValue);
+
+            btnText = new Button()
+            {
+                Y = Application.GetRealHeight(72 - 37),
+                Height = Application.GetRealHeight(37),
+                TextAlignment = TextAlignment.Center,
+                TextColor = 0xFF949AA5,
+                TextSize = 12,
+                Text = text,
+            };
+            contentView.AddChidren(btnText);
+        }
+
+        public void UpdateValue(string value)
+        {
+            btnText.Text = value;
+        }
+    }
+
+    /// <summary>
+    /// 瀛愭帶鍗$墖缁勪欢
+    /// </summary>
+    public class AcstSubControlView
+    {
+        public TextButton btnSubTempValues;
+        public TextButton btnSubHumidityValues;
+        public Button btnSubPower;
+
+        public AcstSubControlView(Function sub, HorizontalScrolViewLayout subFunctionListView,string imageFolder)
+        {
+            var subFunctionView = new FrameLayout()
+            {
+                Width = Application.GetRealWidth(177),
+                Height = Application.GetRealHeight(93),
+                BackgroundImagePath = "FunctionIcon/Acst/grey/BgSubControlView.png",
+            };
+            subFunctionListView.AddChidren(subFunctionView);
+
+            var btnRoomInfo = new Button()
+            {
+                X = Application.GetRealWidth(18 + 7),
+                Y = Application.GetRealHeight(11),
+                Height = Application.GetRealHeight(40),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = 0xFF1b3053,
+                TextSize = 13,
+                Text = sub.GetRoomListName(),
+            };
+            subFunctionView.AddChidren(btnRoomInfo);
+
+            var btnSubTempIcon = new Button()
+            {
+                X = Application.GetRealWidth(16 + 7),
+                Y = Application.GetRealHeight(47 + 11),
+                Width = Application.GetMinRealAverage(11),
+                Height = Application.GetMinRealAverage(11),
+                UnSelectedImagePath = "FunctionIcon/CAC/HvacCacTempIcon.png",
+            };
+            subFunctionView.AddChidren(btnSubTempIcon);
+
+            btnSubTempValues = new TextButton()
+            {
+                X = btnSubTempIcon.Right,
+                Y = Application.GetRealHeight(45 + 11),
+                Height = Application.GetRealHeight(14),
+                Width = Application.GetRealWidth(22),
+                TextColor = 0xFF1b3035,
+                TextSize = 10,
+                Text = sub.GetAttrState(AcstSub_AttrEnum.room_temp.ToString()) + "掳C",
+                TextAlignment = TextAlignment.CenterLeft,
+            };
+            subFunctionView.AddChidren(btnSubTempValues);
+
+            Button btnSubHumidityIcon = new Button()
+            {
+                X = btnSubTempValues.Right + Application.GetRealWidth(5),
+                Y = Application.GetRealHeight(47 + 11),
+                Width = Application.GetMinRealAverage(11),
+                Height = Application.GetMinRealAverage(11),
+                UnSelectedImagePath = "FunctionIcon/CAC/HvacCacHumidityIcon.png",
+            };
+            subFunctionView.AddChidren(btnSubHumidityIcon);
+
+            btnSubHumidityValues = new TextButton()
+            {
+                X = btnSubHumidityIcon.Right,
+                Y = Application.GetRealHeight(45 + 11),
+                Height = Application.GetRealHeight(14),
+                Width = Application.GetRealWidth(22),
+                TextColor = 0xFF1b3053,
+                TextSize = 10,
+                Text = sub.GetAttrState(AcstSub_AttrEnum.room_humidity.ToString()) + "%",
+                TextAlignment = TextAlignment.CenterLeft,
+            };
+            subFunctionView.AddChidren(btnSubHumidityValues);
+
+            btnSubPower = new Button()
+            {
+                X = Application.GetRealWidth(121 + 7),
+                Gravity = Gravity.CenterVertical,
+                Width = Application.GetRealWidth(28),
+                Height = Application.GetRealWidth(28),
+                UnSelectedImagePath = "FunctionIcon/Acst/grey/PowerOffIcon.png",
+                SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/PowerIcon.png",
+                TextAlignment = TextAlignment.Center,
+            };
+            subFunctionView.AddChidren(btnSubPower);
+
+        }
+    }
+
+
+    public class IconButton : FrameLayout
+    {
+        FrameLayout view;
+
+        public Button btnIcon;
+
+        public Button btnText;
+
+        public IconButton(string iconPath,string iconPath2,string text,uint color,bool isSelect)
+        {
+            view = this;
+            view.Width = Application.GetRealWidth(144);
+            view.Height = Application.GetRealHeight(44);
+
+            btnIcon = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(24),
+                Height = Application.GetRealWidth(24),
+                UnSelectedImagePath = iconPath,
+                SelectedImagePath = iconPath2,
+                IsSelected = isSelect,
+            };
+            view.AddChidren(btnIcon);
+
+            btnText = new Button()
+            {
+                X = btnIcon.Right + Application.GetRealWidth(12),
+                Width = Application.GetRealWidth(90),
+                TextAlignment = TextAlignment.CenterLeft,
+                Text = text,
+                TextSize = 14,
+                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
+                SelectedTextColor = color,
+                IsSelected = isSelect,
+            };
+            view.AddChidren(btnText);
+
+            
+        }
+    }
+}

--
Gitblit v1.8.0