From 9904031f5291daaf56985146bb671f25e18ebbdf Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 02 四月 2020 19:51:31 +0800
Subject: [PATCH] 最新代码

---
 ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs | 3817 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 1,909 insertions(+), 1,908 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs b/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
index ba9b610..0e65470 100755
--- a/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
@@ -1,1911 +1,1912 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Globalization;
-using Shared.Common;
-using Shared.Phone.Device.CommonForm;
-using Shared.Phone.Device.Room;
-using Shared.Phone.UserCenter;
+锘縰sing System;
+using System.Collections.Generic;
+using System.Globalization;
+using Shared.Common;
+using Shared.Phone.Device.CommonForm;
+using Shared.Phone.Device.Room;
+using Shared.Phone.UserCenter;
 using ZigBee.Device;
-using static ZigBee.Device.Scene;
-
-namespace Shared.Phone.Device.Category
-{
-    public class CategoryAddScene : FrameLayout
-    {
-        #region 鈼� 鍙橀噺____________________________
-        /// <summary>
-        /// bodyFrameLayout
-        /// </summary>
-        private FrameLayout bodyFrameLayout;
-        ///// <summary>
-        ///// floorIds
-        ///// </summary>
-        //List<string> floorIds = new List<string> { };
-        ///// <summary>
-        ///// floorNames
-        ///// </summary>
-        //List<string> floorNames = new List<string> { };
-        ///// <summary>
-        ///// roomNames
-        ///// </summary>
-        //List<List<string>> roomNames = new List<List<string>> { };
-        ///// <summary>
-        ///// roomNames
-        ///// </summary>
-        //List<List<Common.Room>> rooms = new List<List<Common.Room>> { };
-        /// <summary>
-        /// ImagePath
-        /// </summary>
-        private string ImagePath="SceneIcon/1.png";
-        /// <summary>
-        /// 鍥剧墖鏉ユ簮 0--鏈湴鍥惧簱 1--鎷嶇収 2--绯荤粺鍥惧簱
-        /// </summary>
-        public int IconPathType = 0;
-        /// <summary>
-        /// curRoom
-        /// </summary>
-        private Common.Room curRoom;
-        /// <summary>
-        /// sceneTargetDevicesList
-        /// </summary>
-        private List<SceneTargetDeviceUI> sceneTargetDevicesList = new List<SceneTargetDeviceUI> { };
-        /// <summary>
-        /// 娣诲姞鐩爣鍚庣殑灞曠ず鍒楄〃
-        /// </summary>
-        public FrameLayout TargetListScrolView;
-        /// <summary>
-        /// The confirm button.
-        /// </summary>
-        private CommonForm.CompleteButton confirmBtn;
-
-        /// <summary>
-        /// backGround
-        /// </summary>
-        private ImageView backGround;
-
-        /// <summary>
-        /// 鏄惁淇敼
-        /// </summary>
-        public bool isModify;
-        /// <summary>
-        /// 淇敼鐨勫満鏅�
-        /// </summary>
-        public SceneUI modifySceneUI;
-        /// <summary>
-        /// 璁板綍缂栬緫鍓嶇殑璁惧鍒楄〃
-        /// </summary>
-        public List<SceneTargetDeviceUI> modifySceneTargetDevicesList;
-        /// <summary>
-        /// modifyRoom
-        /// </summary>
-        public Common.Room modifyRoom;
-
-        /// <summary>
-        /// OldBackgroundImagePath
-        /// </summary>
-        private string OldBackgroundImagePath;
-        /// <summary>
-        /// OldIconPathType
-        /// </summary>
-        public int OldIconPathType;
-
-        /// <summary>
-        /// selectedTimeAction
-        /// </summary>
-        private Action<SceneTargetDeviceUI> selectedAction;
-        /// <summary>
-        /// 淇敼鍦烘櫙action
-        /// </summary>
-        public Action<SceneUI, Common.Room> EditorAction;
-        /// <summary>
-        /// 娣诲姞鍦烘櫙action
-        /// </summary>
-        public Action AddAction;
-
-        #endregion
-
-        /// <summary>
-        /// CategoryAddScene
-        /// </summary>
-        public CategoryAddScene()
-        {
-            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
-        }
-        /// <summary>
-        /// RemoveFromParent
-        /// </summary>
-        public override void RemoveFromParent()
-        {
-            UserView.HomePage.Instance.ScrollEnabled = true;
-            base.RemoveFromParent();
-        }
-        /// <summary>
-        ///鍒锋柊娣诲姞鐩爣鍚庣殑灞曠ず鍒楄〃
-        /// </summary>
-        public void RefreshTargetListView()
-        {
-            UserView.HomePage.Instance.ScrollEnabled = false;
-            TargetListScrolView.RemoveAll();
-            TargetListScrolView.Height = Application.GetRealHeight(173);
-            var TargetListScrolBackView = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(173),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            TargetListScrolView.AddChidren(TargetListScrolBackView);
-
-            if (sceneTargetDevicesList.Count > 0)
-            {
-                if (sceneTargetDevicesList.Count > 1)
-                {
-                    TargetListScrolView.Height = Application.GetRealHeight(140 * sceneTargetDevicesList.Count) + Application.GetRealHeight(200);
-                    TargetListScrolBackView.Height = Application.GetRealHeight(140 * sceneTargetDevicesList.Count + 13);
-                }
-
-                for (int i = 0; i < sceneTargetDevicesList.Count; i++)
-                {
-                    var targetDevice = sceneTargetDevicesList[i];
-                    var targetRowLayout = new RowLayout()
-                    {
-                        Y = Application.GetRealHeight(i * 140),
-                        Height = Application.GetRealHeight(140),
-                        LineColor = ZigbeeColor.Current.GXCClearColor,
-                        BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                        SubViewWidth = Application.GetRealWidth(184)
-                    };
-                    TargetListScrolView.AddChidren(targetRowLayout);
-                    string devImgPath = string.Empty;
-                    string devNameText = string.Empty;
-                    if (targetDevice.Type == 0)
-                    {
-                        if (targetDevice.DeviceUI == null ) continue;
-                        devImgPath = targetDevice.DeviceUI.IconPath;
-                        devNameText = Common.LocalDevice.Current.GetDeviceEpointName(targetDevice.DeviceUI);
-
-                        var targetRow = new SceneTargetFunctionRow(13);
-                        targetRow.Init();
-                        targetRow.SetIcon(devImgPath);
-                        targetRow.SetNameText(devNameText);
-                        targetRow.SetZoneText(HdlRoomLogic.Current.GetRoomNameByDevice(targetDevice.DeviceUI, ","));
-                        targetRow.SetStatuText(targetDevice.GetDeviceStatu());
-                        targetRowLayout.AddChidren(targetRow);
-                        if (i == sceneTargetDevicesList.Count - 1)
-                        {
-                            targetRow.HideLine(true);
-                        }
-                    }
-                    else if (targetDevice.Type == 2)
-                    {
-                        devNameText = CommonFormResouce.GetTimeString(targetDevice.DelayTime);
-                        devNameText += Language.StringByID(R.MyInternationalizationString.Later);
-                        var targetRow = new SceneTargetTimeRow(13);
-                        targetRow.Init();
-                        targetRow.SetTitle(devNameText);
-                        targetRowLayout.AddChidren(targetRow);
-                        if (i == sceneTargetDevicesList.Count - 1)
-                        {
-                            targetRow.HideLine(true);
-                        }
-                    }
-                    else if (targetDevice.Type == 1)
-                    {
-                        devImgPath = "Scene/SceneIcon.png";
-                        devNameText = targetDevice.SceneName;
-
-                        var targetRow = new SceneTargetFunctionRow(13);
-                        targetRow.Init();
-                        targetRow.SetIcon(devImgPath);
-                        targetRow.SetNameText(devNameText);
-                        targetRow.SetZoneText(HdlSceneLogic.Current.GetZoneById(targetDevice.SceneUI.Id));
-                        targetRowLayout.AddChidren(targetRow);
-                        if (i == sceneTargetDevicesList.Count - 1)
-                        {
-                            targetRow.HideLine(true);
-                        }
-                    }
-
-                    var editBtn = new RowLayoutEditButton();
-                    targetRowLayout.AddRightView(editBtn);
-                    //缂栬緫璁惧
-                    editBtn.MouseUpEventHandler += detailMouseUpEventHandler;
-                    var delBtn = new RowLayoutDeleteButton();
-                    targetRowLayout.AddRightView(delBtn);
-                    //鍒犻櫎璁惧
-                    delBtn.MouseUpEventHandler += (sender, e) =>
-                    {
-                        sceneTargetDevicesList.Remove(targetDevice);
-                        RefreshTargetListView();
-                    };
-
-                    //璁惧璇︾粏璁剧疆鐣岄潰
-                    void detailMouseUpEventHandler(object sender, MouseEventArgs e)
-                    {
-                        if (targetDevice.Type == 0)
-                        {
-                            if (targetDevice.DeviceUI == null)
-                            {
-                                return;
-                            }
-
-                            ShowSelectAction(targetDevice.DeviceUI, targetDevice);
-                            selectedAction = (selectedDevice) =>
-                            {
-                                var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedDevice.SceneTargetDeviceUIID);
-                                if (targetDeviceUI != null)
-                                {
-                                    targetDeviceUI.DeviceUI = selectedDevice.DeviceUI;
-                                    targetDeviceUI.TaskList = selectedDevice.TaskList;
-                                }
-                                RefreshTargetListView();
-                            };
-
-                        }
-                        else if (targetDevice.Type == 2)
-                        {
-                            var delayTimeView = new SelectDelayTime();
-                            UserView.HomePage.Instance.AddChidren(delayTimeView);
-                            UserView.HomePage.Instance.PageIndex += 1;
-                            delayTimeView.sceneTargetDevice = targetDevice;
-                            delayTimeView.totalSecond = targetDevice.DelayTime;
-                            delayTimeView.Show();
-                            delayTimeView.selectedTimeAction = (second) =>
-                            {
-                                var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == second.SceneTargetDeviceUIID);
-                                if (targetDeviceUI != null)
-                                {
-                                    targetDeviceUI.DelayTime = second.DelayTime;
-                                }
-                                RefreshTargetListView();
-                            };
-                        }
-                        else if (targetDevice.Type == 1)
-                        {
-                            var sceneView = new SelectScene();
-                            UserView.HomePage.Instance.AddChidren(sceneView);
-                            UserView.HomePage.Instance.PageIndex += 1;
-                            sceneView.sceneTargetDevice = targetDevice;
-                            sceneView.sceneUI = targetDevice.SceneUI;
-                            sceneView.currentSceneUI = modifySceneUI;
-                            sceneView.Show();
-                            sceneView.selectedAction = (selectedScene) =>
-                            {
-                                var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedScene.SceneTargetDeviceUIID);
-                                if (targetDeviceUI != null)
-                                {
-                                    targetDeviceUI.SceneName = selectedScene.SceneName;
-                                    targetDevice.SceneUI = selectedScene.SceneUI;
-                                    targetDevice.ElseScenesId = selectedScene.ElseScenesId;
-                                }
-                                RefreshTargetListView();
-                            };
-                        }
-                    }
-                }
-            }
-        }
-        /// <summary>
-        /// Show this instance.
-        /// </summary>
-        public void Show()
-        {
-            Init();
-
-            AddTop();
-
-            AddBodyView();
-
-        }
-
-        #region Add____________________________________
-
-        /// <summary>
-        /// Init
-        /// </summary>
-        private void Init()
-        {
-
-        }
-
-        /// <summary>
-        /// AddTop
-        /// </summary>
-        private void AddTop()
-        {
-            var top = new TopFrameLayout();
-            AddChidren(top);
-            top.InitTopview();
-            if(isModify)
-            {
-                top.SetTopTitle(R.MyInternationalizationString.EditorScene);
-            }
-            else
-            {
-                top.SetTopTitle(R.MyInternationalizationString.AddScence);
-            }
-            top.backButton.MouseUpEventHandler += (sender, e) =>
-            {
-                RemoveFromParent();
-            };
-        }
-
-        /// <summary>
-        /// AddBodyView
-        /// </summary>
-        private void AddBodyView()
-        {
-            var bodyScrolView=new VerticalScrolViewLayout()
-            {
-                Y = Application.GetRealHeight(184),
-                Height = Application.GetRealHeight(1737),
-                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
-            };
-            AddChidren(bodyScrolView);
-
-            bodyFrameLayout = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(1086+127),
-                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
-            };
-            bodyScrolView.AddChidren(bodyFrameLayout);
-
-            var imgFL = new FrameLayout
-            {
-                Height = Application.GetRealHeight(556),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            bodyFrameLayout.AddChidren(imgFL);
-
-            var backGround1 = new ImageView()
-            {
-                Y = Application.GetRealHeight(46),
-                Width = Application.GetMinRealAverage(916),
-                Height = Application.GetMinRealAverage(487),
-                Gravity = Gravity.CenterHorizontal,
-                ImagePath = "Room/Room_Rectangle.png"
-            };
-            imgFL.AddChidren(backGround1);
-
-            backGround = new ImageView()
-            {
-                Y = Application.GetRealHeight(46),
-                Width = Application.GetMinRealAverage(887),
-                Height = Application.GetMinRealAverage(444),
-                Gravity = Gravity.CenterHorizontal,
-                Radius = (uint)Application.GetMinRealAverage(CommonFormResouce.BigFormRadius),
-                ImagePath = "SceneIcon/3.jpg"
-            };
-            imgFL.AddChidren(backGround);
-
-            var infoFL = new FrameLayout
-            {
-                Y = Application.GetRealHeight(588),
-                Height = Application.GetRealHeight(429),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            bodyFrameLayout.AddChidren(infoFL);
-
-            var infoEdit = new Button
-            {
-                X = Application.GetRealWidth(CommonFormResouce.X_Left),
-                Height = Application.GetRealHeight(130),
-                Width = Application.GetRealWidth(700),
-                TextID = R.MyInternationalizationString.EditInfo,
-                TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextSize = 15,
-                //IsBold=true
-            };
-            infoFL.AddChidren(infoEdit);
-
-
-            var nameRow = new DeviceInfoEditRow(130);
-            nameRow.Init();
-            nameRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.SceneName)}:");
-            nameRow.SetPlaceHoldText(R.MyInternationalizationString.PleaseInputSceneName);
-            infoFL.AddChidren(nameRow);
-
-            var zoneRow = new DeviceInfoRow(257);
-            zoneRow.Init();
-            zoneRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.BelongZone)}:");
-            //zoneRow.SetTitle(curRoom.Name);
-            infoFL.AddChidren(zoneRow);
-            zoneRow.HideLine(true);
-
-            var targetFL = new FrameLayout()
-            {
-                Y = Application.GetRealHeight(1040),
-                Height = Application.GetRealHeight(346)
-            };
-            bodyFrameLayout.AddChidren(targetFL);
-
-            var targetBG = new FrameLayout
-            {
-                Height = Application.GetRealHeight(334),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            targetFL.AddChidren(targetBG);
-
-            var addTargetFL = new FrameLayout
-            {
-                Y=Application.GetRealHeight(46),
-                Height = Application.GetRealHeight(127),
-            };
-            targetFL.AddChidren(addTargetFL);
-
-            var target = new Button()
-            {
-                X = Application.GetRealWidth(CommonFormResouce.X_Left),
-                Height = Application.GetRealHeight(127) - 1,
-                Width = Application.GetRealWidth(600),
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                TextID = R.MyInternationalizationString.AddScentTargetAction,
-                Gravity = Gravity.CenterVertical,
-                TextSize=15
-            };
-            addTargetFL.AddChidren(target);
-
-            var targetAdd = new Button
-            {
-                X = Application.GetRealWidth(950),
-                Y = Application.GetRealHeight(46),
-                Width = Application.GetMinRealAverage(72),
-                Height = Application.GetMinRealAverage(72),
-                Gravity=Gravity.CenterVertical,
-                UnSelectedImagePath = "Item/Add.png",
-            };
-            addTargetFL.AddChidren(targetAdd);
-            var targetLine = new Button()
-            {
-                Y = target.Bottom,
-                Height = 1,
-                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
-            };
-            addTargetFL.AddChidren(targetLine);
-
-            TargetListScrolView = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(173)
-            };
-            bodyScrolView.AddChidren(TargetListScrolView);
-
-
-
-            confirmBtn = new CommonForm.CompleteButton(1656, 907, 127);
-            confirmBtn.TextID = R.MyInternationalizationString.uFinish;
-            AddChidren(confirmBtn);
-
-            if (isModify)
-            {
-                IconPathType = modifySceneUI.IconPathType;
-                OldIconPathType = modifySceneUI.IconPathType;
-                if (IconPathType != 0)
-                {
-                    OldBackgroundImagePath = modifySceneUI.IconPath;
-                }
-                if (modifySceneUI.IconPathType == 0)
-                {
-                    backGround.ImagePath = modifySceneUI.IconPath;
-                }
-                else
-                {
-                    backGround.ImagePath = System.IO.Path.Combine(Config.Instance.FullPath, modifySceneUI.IconPath);
-                }
-                nameRow.SetTitle(modifySceneUI.Name);
-                if (Config.Instance.Home.FloorDics.Count == 0)
-                {
-                    zoneRow.SetTitle($"{modifyRoom.Name}");
-                }
-                else
-                {
-                    zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(modifyRoom.FloorId)}锛寋modifyRoom.Name}");
-                }
-                curRoom = modifyRoom;
-                sceneTargetDevicesList.AddRange(modifySceneTargetDevicesList);
-            }
-
-            RefreshTargetListView();
-
-            #region event
-
-            EventHandler<MouseEventArgs> backGroundIMGHander = (sender, e) =>
-            {
-                if (curRoom != null && curRoom.IsSharedRoom)
-                {
-                    RoomCommon.ShowTipRoomIsShared();
-                    return;
-                }
-
-                int selectRow_Height = 150;
-                int selectRow_Width = 1034;
-                var selectFL = new FrameLayout()
-                {
-                    BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
-                };
-                AddChidren(selectFL);
-
-                var itemFL = new FrameLayout()
-                {
-                    Y = Application.GetRealHeight(1276),
-                    Height = Application.GetRealHeight(450),
-                    Width = Application.GetRealWidth(selectRow_Width),
-                    Gravity = Gravity.CenterHorizontal,
-                    Radius = (uint)Application.GetRealHeight(35),
-                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor
-                };
-                selectFL.AddChidren(itemFL);
-                //itemFL.Animate = Animate.DownToUp;
-
-                var selectLocalPicture = new Button()
-                {
-                    Height = Application.GetRealHeight(selectRow_Height) - 1,
-                    TextID = R.MyInternationalizationString.LocalPicture,
-                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
-                    TextSize=17
-                };
-                itemFL.AddChidren(selectLocalPicture);
-                var selectLocalLine = new Button()
-                {
-                    Y = selectLocalPicture.Bottom,
-                    Height = 1,
-                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
-                };
-                itemFL.AddChidren(selectLocalLine);
-
-                var selectPhotographBtn = new Button()
-                {
-                    Y = selectLocalLine.Bottom,
-                    Height = Application.GetRealHeight(selectRow_Height) - 1,
-                    TextID = R.MyInternationalizationString.Photograph,
-                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
-                    TextSize=17
-                };
-                itemFL.AddChidren(selectPhotographBtn);
-                var selectPhotographLine = new Button()
-                {
-                    Y = selectPhotographBtn.Bottom,
-                    Height = 1,
-                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2,
-                };
-                itemFL.AddChidren(selectPhotographLine);
-
-                var selectAblumsBtn = new Button()
-                {
-                    Y = selectPhotographLine.Bottom,
-                    Height = Application.GetRealHeight(selectRow_Height) - 1,
-                    TextID = R.MyInternationalizationString.MyAblums,
-                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
-                    TextSize=17
-                };
-                itemFL.AddChidren(selectAblumsBtn);
-
-                var cancelBtn = new Button()
-                {
-                    Y = Application.GetRealHeight(1742),
-                    Height = Application.GetRealHeight(selectRow_Height),
-                    Width = Application.GetRealWidth(selectRow_Width),
-                    Gravity = Gravity.CenterHorizontal,
-                    TextID = R.MyInternationalizationString.Cancel,
-                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
-                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor,
-                    Radius = (uint)Application.GetRealHeight(35),
-                    TextSize=17
-                };
-                selectFL.AddChidren(cancelBtn);
-
-                selectLocalPicture.MouseUpEventHandler += (send, ee) =>
-                {
-                    selectFL.RemoveFromParent();
-                    var localPic = new CategorySceneSelectImgByLocal();
-                    Shared.Phone.UserView.HomePage.Instance.AddChidren(localPic);
-                    Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                    localPic.Show();
-                    localPic.action = (imgPath) =>
-                    {
-                        IconPathType = 0;
-                        backGround.ImageBytes = null;
-                        backGround.ImagePath = imgPath;
-                    };
-                };
-                selectPhotographBtn.MouseUpEventHandler += (send, ee) =>
-                {
-                    selectFL.RemoveFromParent();
-                    var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
-                    var fileName = $"SceneIcon_{tradeTime}.png";
-                    //閫氳繃鐩告満鎷嶇収瑁佸壀
-                    CropImage.TakePicture((imagePath) =>
+using static ZigBee.Device.Scene;
+
+namespace Shared.Phone.Device.Category
+{
+    public class CategoryAddScene : FrameLayout
+    {
+        #region 鈼� 鍙橀噺____________________________
+        /// <summary>
+        /// bodyFrameLayout
+        /// </summary>
+        private FrameLayout bodyFrameLayout;
+        ///// <summary>
+        ///// floorIds
+        ///// </summary>
+        //List<string> floorIds = new List<string> { };
+        ///// <summary>
+        ///// floorNames
+        ///// </summary>
+        //List<string> floorNames = new List<string> { };
+        ///// <summary>
+        ///// roomNames
+        ///// </summary>
+        //List<List<string>> roomNames = new List<List<string>> { };
+        ///// <summary>
+        ///// roomNames
+        ///// </summary>
+        //List<List<Common.Room>> rooms = new List<List<Common.Room>> { };
+        /// <summary>
+        /// ImagePath
+        /// </summary>
+        private string ImagePath = "SceneIcon/1.png";
+        /// <summary>
+        /// 鍥剧墖鏉ユ簮 0--鏈湴鍥惧簱 1--鎷嶇収 2--绯荤粺鍥惧簱
+        /// </summary>
+        public int IconPathType = 0;
+        /// <summary>
+        /// curRoom
+        /// </summary>
+        private Common.Room curRoom;
+        /// <summary>
+        /// sceneTargetDevicesList
+        /// </summary>
+        private List<SceneTargetDeviceUI> sceneTargetDevicesList = new List<SceneTargetDeviceUI> { };
+        /// <summary>
+        /// 娣诲姞鐩爣鍚庣殑灞曠ず鍒楄〃
+        /// </summary>
+        public FrameLayout TargetListScrolView;
+        /// <summary>
+        /// The confirm button.
+        /// </summary>
+        private CommonForm.CompleteButton confirmBtn;
+
+        /// <summary>
+        /// backGround
+        /// </summary>
+        private ImageView backGround;
+
+        /// <summary>
+        /// 鏄惁淇敼
+        /// </summary>
+        public bool isModify;
+        /// <summary>
+        /// 淇敼鐨勫満鏅�
+        /// </summary>
+        public SceneUI modifySceneUI;
+        /// <summary>
+        /// 璁板綍缂栬緫鍓嶇殑璁惧鍒楄〃
+        /// </summary>
+        public List<SceneTargetDeviceUI> modifySceneTargetDevicesList;
+        /// <summary>
+        /// modifyRoom
+        /// </summary>
+        public Common.Room modifyRoom;
+
+        /// <summary>
+        /// OldBackgroundImagePath
+        /// </summary>
+        private string OldBackgroundImagePath;
+        /// <summary>
+        /// OldIconPathType
+        /// </summary>
+        public int OldIconPathType;
+
+        /// <summary>
+        /// selectedTimeAction
+        /// </summary>
+        private Action<SceneTargetDeviceUI> selectedAction;
+        /// <summary>
+        /// 淇敼鍦烘櫙action
+        /// </summary>
+        public Action<SceneUI, Common.Room> EditorAction;
+        /// <summary>
+        /// 娣诲姞鍦烘櫙action
+        /// </summary>
+        public Action AddAction;
+
+        #endregion
+
+        /// <summary>
+        /// CategoryAddScene
+        /// </summary>
+        public CategoryAddScene()
+        {
+            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+        }
+        /// <summary>
+        /// RemoveFromParent
+        /// </summary>
+        public override void RemoveFromParent()
+        {
+            UserView.HomePage.Instance.ScrollEnabled = true;
+            base.RemoveFromParent();
+        }
+        /// <summary>
+        ///鍒锋柊娣诲姞鐩爣鍚庣殑灞曠ず鍒楄〃
+        /// </summary>
+        public void RefreshTargetListView()
+        {
+            UserView.HomePage.Instance.ScrollEnabled = false;
+            TargetListScrolView.RemoveAll();
+            TargetListScrolView.Height = Application.GetRealHeight(173);
+            var TargetListScrolBackView = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(173),
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+            };
+            TargetListScrolView.AddChidren(TargetListScrolBackView);
+
+            if (sceneTargetDevicesList.Count > 0)
+            {
+                if (sceneTargetDevicesList.Count > 1)
+                {
+                    TargetListScrolView.Height = Application.GetRealHeight(140 * sceneTargetDevicesList.Count) + Application.GetRealHeight(200);
+                    TargetListScrolBackView.Height = Application.GetRealHeight(140 * sceneTargetDevicesList.Count + 13);
+                }
+
+                for (int i = 0; i < sceneTargetDevicesList.Count; i++)
+                {
+                    var targetDevice = sceneTargetDevicesList[i];
+                    var targetRowLayout = new RowLayout()
                     {
-                        if (string.IsNullOrEmpty(imagePath))
-                        {
-                            return;
-                        }
-                        if (isModify)
-                        {
-                            if (IconPathType != 0)
-                            {
-                                Global.DeleteFilebyHomeId(backGround.ImagePath);
-                                HdlAutoBackupLogic.DeleteFile(backGround.ImagePath);
-                            }
-                        }
-
-                        IconPathType = 1;
-                        backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
-                        backGround.ImagePath = imagePath;
-                        System.IO.File.Delete(imagePath);
-
-                    }, fileName, 2, 1);
-                };
-
-                selectAblumsBtn.MouseUpEventHandler += (send, ee) =>
-                {
-                    selectFL.RemoveFromParent();
-                    var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
-                    var fileName = $"SceneIcon_{tradeTime}.png";
-                    //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
-                    CropImage.SelectPicture((imagePath) =>
+                        Y = Application.GetRealHeight(i * 140),
+                        Height = Application.GetRealHeight(140),
+                        LineColor = ZigbeeColor.Current.GXCClearColor,
+                        BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
+                        SubViewWidth = Application.GetRealWidth(184)
+                    };
+                    TargetListScrolView.AddChidren(targetRowLayout);
+                    string devImgPath = string.Empty;
+                    string devNameText = string.Empty;
+                    if (targetDevice.Type == 0)
                     {
-                        if (string.IsNullOrEmpty(imagePath))
-                        {
-                            return;
-                        }
-                        if (isModify)
-                        {
-                            if (IconPathType != 0)
-                            {
-                                Global.DeleteFilebyHomeId(backGround.ImagePath);
-                                HdlAutoBackupLogic.DeleteFile(backGround.ImagePath);
-                            }
-                        }
-
-                        IconPathType = 2;
-                        backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
-                        backGround.ImagePath = imagePath;
-                        System.IO.File.Delete(imagePath);
-
-                    }, fileName, 2,1);
-                };
-
-                cancelBtn.MouseUpEventHandler += (send, ee) =>
-                {
-                    selectFL.RemoveFromParent();
-                };
-                selectFL.MouseUpEventHandler += (send, ee) =>
-                {
-                    selectFL.RemoveFromParent();
-                };
-            };
-            backGround.MouseUpEventHandler += backGroundIMGHander;
-
-            //鍖哄煙
-            EventHandler<MouseEventArgs> zoneHander = (sender, e) =>
-            {
-                var zone = new SelectZone();
-                zone.Init();
-                zone.ZoneAction += (selectRoom) =>
-                {
-                    curRoom = selectRoom;
-                    zoneRow.SetTitle(HdlRoomLogic.Current.GetZoneName(selectRoom));
-                };
-            };
-            zoneRow.ClickBtn.MouseUpEventHandler += zoneHander;
-
-            //鎵ц鐩爣-娣诲姞鎵ц璁惧
-            EventHandler<MouseEventArgs> targetAddHander = (sender, e) =>
-            {
-
-                //if (curRoom == null)
-                //{
-                //    RoomCommon.ShowTipNoRoom();
-                //    return;
-                //}
-                if(curRoom != null)
-                {
-                    if (curRoom.IsSharedRoom)
-                    {
-                        RoomCommon.ShowTipRoomIsShared();
-                        return;
-                    }
-                }
-
-                int selectRow_Height = 150;
-                int selectRow_Width = 1034;
-                var selectFL = new FrameLayout()
-                {
-                    BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
-                };
-                AddChidren(selectFL);
-
-                var itemFL = new FrameLayout()
-                {
-                    Y = Application.GetRealHeight(1276),
-                    Height = Application.GetRealHeight(450),
-                    Width = Application.GetRealWidth(selectRow_Width),
-                    Gravity=Gravity.CenterHorizontal,
-                    Radius = (uint)Application.GetRealHeight(35),
-                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor
-                };
-                selectFL.AddChidren(itemFL);
-                //itemFL.Animate = Animate.DownToUp;
-
-                var selectedFunctionBtn = new Button()
-                {
-                    Height = Application.GetRealHeight(selectRow_Height) - 1,
-                    TextID = R.MyInternationalizationString.Function,
-                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
-                    TextSize=17
-                };
-                itemFL.AddChidren(selectedFunctionBtn);
-                var selectedFunctionLine = new Button()
-                {
-                    Y = selectedFunctionBtn.Bottom,
-                    Height = 1,
-                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
-                };
-                itemFL.AddChidren(selectedFunctionLine);
-
-                var selectedSceneBtn = new Button()
-                {
-                    Y = selectedFunctionLine.Bottom,
-                    Height = Application.GetRealHeight(selectRow_Height) - 1,
-                    TextID = R.MyInternationalizationString.Scence,
-                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
-                    TextSize=17
-                };
-                itemFL.AddChidren(selectedSceneBtn);
-                var selectedSceneLine = new Button()
-                {
-                    Y = selectedSceneBtn.Bottom,
-                    Height = 1,
-                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2,
-                };
-                itemFL.AddChidren(selectedSceneLine);
-
-                var selectedTimerBtn = new Button()
-                {
-                    Y = selectedSceneLine.Bottom,
-                    Height = Application.GetRealHeight(selectRow_Height) - 1,
-                    TextID = R.MyInternationalizationString.Delay,
-                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
-                    TextSize=17
-                };
-                itemFL.AddChidren(selectedTimerBtn);
-
-
-                var cancelBtn = new Button()
-                {
-                    Y = Application.GetRealHeight(1742),
-                    Height = Application.GetRealHeight(selectRow_Height),
-                    Width = Application.GetRealWidth(selectRow_Width),
-                    Gravity=Gravity.CenterHorizontal,
-                    TextID = R.MyInternationalizationString.Cancel,
-                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
-                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor,
-                    Radius = (uint)Application.GetRealHeight(35),
-                    TextSize=17
-                };
-                selectFL.AddChidren(cancelBtn);
-
-                //娣诲姞鍔熻兘
-                selectedFunctionBtn.MouseUpEventHandler += (send, ee) =>
-                {
-                    selectFL.RemoveFromParent();
-                    var deviceView = new SelectDevice();
-                    UserView.HomePage.Instance.AddChidren(deviceView);
-                    UserView.HomePage.Instance.PageIndex += 1;
-                    deviceView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList;
-                    deviceView.Show();
-                    deviceView.selectedAction = (selectedDevice) =>
-                    {
-                        sceneTargetDevicesList.Add(selectedDevice);
-                        RefreshTargetListView();
-                    };
-                };
-                //娣诲姞鍦烘櫙
-                selectedSceneBtn.MouseUpEventHandler += (send, ee) =>
-                {
-                    selectFL.RemoveFromParent();
-                    var sceneView = new SelectScene();
-                    UserView.HomePage.Instance.AddChidren(sceneView);
-                    UserView.HomePage.Instance.PageIndex += 1;
-                    sceneView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList;
-                    sceneView.currentSceneUI = modifySceneUI;
-                    sceneView.Show();
-                    sceneView.selectedAction = (selectedScene) =>
-                    {
-                        sceneTargetDevicesList.Add(selectedScene);
-                        RefreshTargetListView();
-                    };
-
-                };
-                //娣诲姞鏃堕棿闂撮殧
-                selectedTimerBtn.MouseUpEventHandler += (send, ee) =>
-                {
-                    selectFL.RemoveFromParent();
-                    var delayTimeView = new SelectDelayTime();
-                    UserView.HomePage.Instance.AddChidren(delayTimeView);
-                    UserView.HomePage.Instance.PageIndex += 1;
-                    delayTimeView.Show();
-                    delayTimeView.selectedTimeAction = (second) =>
-                    {
-                        sceneTargetDevicesList.Add(second);
-                        RefreshTargetListView();
-                    };
-                };
-
-                cancelBtn.MouseUpEventHandler += (send, ee) =>
-                {
-                    selectFL.RemoveFromParent();
-                };
-                selectFL.MouseUpEventHandler += (send, ee) =>
-                {
-                    selectFL.RemoveFromParent();
-                };
-            };
-            targetAdd.MouseUpEventHandler += targetAddHander;
-            targetFL.MouseUpEventHandler += targetAddHander;
-            target.MouseUpEventHandler += targetAddHander;
-            addTargetFL.MouseUpEventHandler += targetAddHander;
-            //纭畾娣诲姞鐩爣
-            confirmBtn.MouseUpEventHandler += async (sender, e) =>
-            {
-                if (curRoom == null)
-                {
-                    RoomCommon.ShowTipNoRoom();
-                    return;
-                }
-                if (curRoom.IsSharedRoom)
-                {
-                    RoomCommon.ShowTipRoomIsShared();
-                    return;
-                }
-
-                if(isModify)
-                {
-                    if (string.IsNullOrEmpty(nameRow.NameText.Text))
-                    {
-                        CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull));
-                        return;
-                    }
-                    else
-                    {
-                        try
-                        {
-                            var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
-                            var fileName = $"SceneIcon_{tradeTime}.png";
-                            if (modifySceneUI.Name != nameRow.NameText.Text.Trim())
-                            {
-                                if (HdlSceneLogic.Current.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null)
-                                {
-                                    CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
-                                    return;
-                                }
-                                var r = await ZigBee.Device.Scene.RenameSceneAsync(modifySceneUI.Id, nameRow.NameText.Text.Trim());
-                                var reName = r.sceneRenameResponseData.Result;
-                                if (reName == 0)
-                                {
-                                    return;
-                                }
-                                else if (reName == 1)
-                                {
-                                    modifySceneUI.Name = nameRow.NameText.Text.Trim();
-
-                                }
-                                else if (reName == 2)
-                                {
-                                    return;
-                                }
-                            }
-                            if (OldIconPathType != 0)
-                            {
-                                Shared.IO.FileUtils.DeleteFile(System.IO.Path.Combine(Config.Instance.FullPath, OldBackgroundImagePath));
-                                HdlAutoBackupLogic.DeleteFile(OldBackgroundImagePath);
-                            }
-                            if (IconPathType == 1 || IconPathType == 2)
-                            {
-                                Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes);
-                                HdlAutoBackupLogic.AddOrEditorFile(fileName);
-                                modifySceneUI.IconPath = fileName;
-                            }
-                            else
-                            {
-                                modifySceneUI.IconPath = backGround.ImagePath;
-                            }
-                            modifySceneUI.IconPathType = IconPathType;
-
-                            CommonPage.Loading.Start();
-                            var memberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData>();
-                            for (int i = 0; i < sceneTargetDevicesList.Count; i++)
-                            {
-                                var sceneTarget = sceneTargetDevicesList[i];
-
-                                if (sceneTarget.Type == 0)
-                                {
-                                    if (sceneTarget.DeviceUI == null)
-                                    {
-                                        continue;
-                                    }
-                                    var memberData = new AddSceneMemberData
-                                    {
-                                        Type = 0,
-                                        ScenesId = 0,
-                                        DeviceAddr = sceneTarget.DeviceUI.DeviceAddr,
-                                        Epoint = sceneTarget.DeviceUI.DeviceEpoint,
-                                        TaskList = sceneTarget.TaskList,
-                                        DelayTime = 0,
-                                        MemberNumber = i + 1
-                                    };
-                                    memberDataList.Add(memberData);
-                                }
-                                else if (sceneTarget.Type == 1)
-                                {
-                                    var memberData = new AddSceneMemberData
-                                    {
-                                        Type = 1,
-                                        ScenesId = 0,
-                                        ElseScenesId = sceneTarget.ElseScenesId,
-                                        DelayTime = 0,
-                                        MemberNumber = i + 1
-                                    };
-                                    memberDataList.Add(memberData);
-                                }
-                                else if (sceneTarget.Type == 2)
-                                {
-                                    var memberData = new AddSceneMemberData
-                                    {
-                                        Type = 2,
-                                        ScenesId = 0,
-                                        DelayTime = sceneTarget.DelayTime,
-                                        MemberNumber = i + 1
-                                    };
-                                    memberDataList.Add(memberData);
-                                }
-                            }
-
-                            var sceneRemoveMemberData = new SceneRemoveMemberData { };
-                            var removeSceneDeviceListInfoList = new List<RemoveSceneDeviceListInfo> { };
-                            for (int i = 0; i < modifySceneTargetDevicesList.Count; i++)
-                            {
-                                var sceneTarget = modifySceneTargetDevicesList[i];
-                                if (sceneTarget.Type == 0)
-                                {
-                                    if (sceneTarget.DeviceUI == null)
-                                    {
-                                        continue;
-                                    }
-                                    var removeDevice = new RemoveSceneDeviceListInfo
-                                    {
-                                        Type = 0,
-                                        DeviceAddr = sceneTarget.DeviceUI.DeviceAddr,
-                                        Epoint = sceneTarget.DeviceUI.DeviceEpoint,
-                                        MemberNumber = sceneTarget.DelayTimeSerialNumber
-                                    };
-                                    removeSceneDeviceListInfoList.Add(removeDevice);
-                                }
-                                else if (sceneTarget.Type == 1)
-                                {
-                                    var removeDevice = new ZigBee.Device.Scene.RemoveSceneDeviceListInfo
-                                    {
-                                        Type = 1,
-                                        ElseScenesId = sceneTarget.ElseScenesId,
-                                        MemberNumber = sceneTarget.DelayTimeSerialNumber
-                                    };
-                                    removeSceneDeviceListInfoList.Add(removeDevice);
-                                }
-                                else
-                                {
-                                    var removeDevice = new ZigBee.Device.Scene.RemoveSceneDeviceListInfo
-                                    {
-                                        Type = 2,
-                                        DelayTime = sceneTarget.DelayTime,
-                                        MemberNumber = sceneTarget.DelayTimeSerialNumber
-                                    };
-                                    removeSceneDeviceListInfoList.Add(removeDevice);
-                                }
-                            }
-                            sceneRemoveMemberData.DeviceList = removeSceneDeviceListInfoList;
-                            sceneRemoveMemberData.ScenesId = modifySceneUI.Id;
-                            var result = await HdlSceneLogic.Current.ModifyScene(modifySceneUI, sceneRemoveMemberData, memberDataList);
-                            if (result == 1)
-                            {
-                                if (modifyRoom != curRoom)
-                                {
-                                    modifyRoom.ListSceneId.Remove(modifySceneUI.Id);
-                                    curRoom.ListSceneId.Add(modifySceneUI.Id);
-                                    modifyRoom.Save();
-                                    curRoom.Save();
-                                }
-                                EditorAction?.Invoke(modifySceneUI, curRoom);
-                                RemoveFromParent();
-                            }
-                            else if (result == 0)
-                            {
-                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain));
-                            }
-                            else if (result == -1)
-                            {
-                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
-                            }
-                        }
-                        catch (Exception ex)
-                        {
-                            System.Console.WriteLine($"鍒嗙被娣诲姞鍦烘櫙鍑洪敊{ex.Message}");
-                        }
-                        finally
-                        {
-                            CommonPage.Loading.Hide();
-                        }
-                    }
-                }
-                else
-                {
-                    //鏂板
-                    if (string.IsNullOrEmpty(nameRow.NameText.Text))
-                    {
-                        CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull));
-                        return;
-                    }
-                    else
-                    {
-                        try
-                        {
-                            var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
-                            var fileName = $"SceneIcon_{tradeTime}.png";
-                            string imgPath;
-                            if (IconPathType == 1 || IconPathType == 2)
-                            {
-                                Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes);
-                                HdlAutoBackupLogic.AddOrEditorFile(fileName);
-                                imgPath = fileName;
-                            }
-                            else
-                            {
-                                imgPath = backGround.ImagePath;
-                            }
-                            //if (Common.Room.CurrentRoom.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null)
-                            //{
-                            //    CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
-                            //    return;
-                            //}
-                            CommonPage.Loading.Start();
-                            var memberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData>();
-                            for (int i = 0; i < sceneTargetDevicesList.Count; i++)
-                            {
-                                var sceneTarget = sceneTargetDevicesList[i];
-
-                                if (sceneTarget.Type == 0)
-                                {
-                                    if (sceneTarget.DeviceUI == null)
-                                    {
-                                        continue;
-                                    }
-                                    var memberData = new AddSceneMemberData
-                                    {
-                                        Type = 0,
-                                        ScenesId = 0,
-                                        DeviceAddr = sceneTarget.DeviceUI.DeviceAddr,
-                                        Epoint = sceneTarget.DeviceUI.DeviceEpoint,
-                                        TaskList = sceneTarget.TaskList,
-                                        DelayTime = 0,
-                                        MemberNumber = i+1
-                                    };
-                                    memberDataList.Add(memberData);
-                                }
-                                else if (sceneTarget.Type == 1)
-                                {
-                                    var memberData = new AddSceneMemberData
-                                    {
-                                        Type = 1,
-                                        ScenesId = 0,
-                                        ElseScenesId = sceneTarget.ElseScenesId,
-                                        DelayTime = 0,
-                                        MemberNumber = i+1
-                                    };
-                                    memberDataList.Add(memberData);
-                                }
-                                else if (sceneTarget.Type == 2)
-                                {
-                                    var memberData = new AddSceneMemberData
-                                    {
-                                        Type = 2,
-                                        ScenesId = 0,
-                                        DelayTime = sceneTarget.DelayTime,
-                                        MemberNumber = i+1
-                                    };
-                                    memberDataList.Add(memberData);
-                                }
-                            }
-
-                            var result = await HdlSceneLogic.Current.AddScene(curRoom, nameRow.NameText.Text, imgPath, memberDataList, IconPathType);
-                            if (result == 1)
-                            {
-                                AddAction?.Invoke();
-                                RemoveFromParent();
-                            }
-                            else if (result == 0)
-                            {
-                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.AddSceneFail));
-                            }
-                            else if (result == -1)
-                            {
-                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
-                            }
-                        }
-                        catch (Exception ex)
-                        {
-                            System.Console.WriteLine($"鍒嗙被娣诲姞鍦烘櫙鍑洪敊{ex.Message}");
-                        }
-                        finally
-                        {
-                            CommonPage.Loading.Hide();
-                        }
-                    }
-                }
-
-            };
-            #endregion
-        }
-
-        #endregion
-
-        #region 缂栬緫璁惧____________________________________
-
-        /// <summary>
-        /// ShowSelectAction
-        /// </summary>
-        /// <param name="device"></param>
-        private void ShowSelectAction(CommonDevice device, SceneTargetDeviceUI sceneTarget)
-        {
-            var dialog = new FrameLayout()
-            {
-                BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
-            };
-            AddChidren(dialog);
-
-            dialog.MouseUpEventHandler += (sender, e) =>
-            {
-                dialog.RemoveFromParent();
-            };
-
-            if (device.Type == ZigBee.Device.DeviceType.OnOffOutput)
-            {
-                SelectOnoffOutput(dialog, device, sceneTarget);
-            }
-            else if (device.Type == ZigBee.Device.DeviceType.AirSwitch)
-            {
-                SelectOnoffOutput(dialog, device, sceneTarget);
-            }
-            else if (device.Type == ZigBee.Device.DeviceType.DimmableLight)
-            {
-                SelectDimmableLight(dialog, device, sceneTarget);
-            }
-            else if (device.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
-            {
-                SelectWindowCoveringDevice(dialog, device, sceneTarget);
-            }
-            else if (device.Type == ZigBee.Device.DeviceType.Thermostat)
-            {
-                SelectThermostat(dialog, device, sceneTarget);
-            }
-        }
-
-        /// <summary>
-        /// 鐏厜
-        /// </summary>
-        /// <param name="dialog"></param>
-        /// <param name="device"></param>
-        /// <param name="sceneTarget"></param>
-        private void SelectOnoffOutput(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
-        {
-            var selectFL = new FrameLayout
-            {
-                Y = Application.GetRealHeight(1391),
-                Height = Application.GetRealHeight(530),
-            };
-            dialog.AddChidren(selectFL);
-            //selectFL.Animate = Animate.DownToUp;
-
-            var titleBG = new FrameLayout
-            {
-                Height = Application.GetRealHeight(138 * 2),
-                Radius = (uint)Application.GetRealHeight(58),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            selectFL.AddChidren(titleBG);
-
-            var titleFL = new FrameLayout
-            {
-                Height = Application.GetRealHeight(138),
-            };
-            selectFL.AddChidren(titleFL);
-
-            var line = new Button
-            {
-                Y = titleFL.Height - 1,
-                Height = 1,
-                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
-            };
-            titleFL.AddChidren(line);
-
-            var cancleBtn = new Button
-            {
-                X = Application.GetRealWidth(80),
-                Width = Application.GetRealWidth(200),
-                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
-                TextSize = 14,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextID = R.MyInternationalizationString.Cancel
-            };
-            titleFL.AddChidren(cancleBtn);
-
-            var deviceName = new Button
-            {
-                Width = Application.GetRealWidth(600),
-                Gravity = Gravity.CenterHorizontal,
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                TextSize = 16,
-                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
-            };
-            titleFL.AddChidren(deviceName);
-
-            var comfrimBtn = new Button
-            {
-                X = Application.GetRealWidth(800),
-                Width = Application.GetRealWidth(200),
-                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
-                TextSize = 14,
-                TextAlignment = TextAlignment.CenterRight,
-                TextID = R.MyInternationalizationString.Complete
-            };
-            titleFL.AddChidren(comfrimBtn);
-
-            var itemFL = new FrameLayout
-            {
-                Y = titleFL.Bottom,
-                Height = Application.GetRealHeight(392),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            selectFL.AddChidren(itemFL);
-
-            var open = new SelectSceneStatuRow(0, 60);
-            itemFL.AddChidren(open);
-            open.Init();
-            open.SetTitle(R.MyInternationalizationString.Open);
-            open.IsSelected = true;
-
-
-            var shut = new SelectSceneStatuRow(0, 60 + 127 + 30);
-            itemFL.AddChidren(shut);
-            shut.Init();
-            shut.hideLine(true);
-            shut.SetTitle(R.MyInternationalizationString.Shut);
-
-            open.ClickButton.MouseUpEventHandler += (sender, e) =>
-            {
-                open.IsSelected = true;
-                shut.IsSelected = false;
-            };
-
-            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
-            {
-                open.IsSelected = false;
-                shut.IsSelected = true;
-            };
-
-            cancleBtn.MouseUpEventHandler = (sender, e) =>
-            {
-                dialog.RemoveAll();
-                dialog.RemoveFromParent();
-            };
-
-            if (sceneTarget.TaskList.Count > 0)
-            {
-                if (sceneTarget.TaskList[0].Data1 == 1)
-                {
-                    open.IsSelected = true;
-                    shut.IsSelected = false;
-                }
-                else
-                {
-                    open.IsSelected = false;
-                    shut.IsSelected = true;
-                }
-            }
-
-            comfrimBtn.MouseUpEventHandler = (sender, e) =>
-            {
-                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
-                int taskType = 1;
-                int data1 = 0;
-                int data2 = 0;
-
-                if (open.IsSelected)
-                {
-                    //寮�
-                    data1 = 1;
-                    data2 = 0;
-                }
-                else
-                {
-                    //鍏�
-                    data1 = 0;
-                    data2 = 0;
-                }
-                var taskInfo = new ZigBee.Device.Scene.TaskListInfo
-                {
-                    TaskType = taskType,
-                    Data1 = data1,
-                    Data2 = data2
-                };
-                taskList.Add(taskInfo);
-
-                sceneTarget.TaskList = taskList;
-                sceneTarget.DeviceUI = device;
-                selectedAction?.Invoke(sceneTarget);
-                dialog.RemoveFromParent();
-            };
-        }
-        /// <summary>
-        /// 绐楀笜
-        /// </summary>
-        /// <param name="dialog"></param>
-        /// <param name="device"></param>
-        /// <param name="sceneTarget"></param>
-        private void SelectWindowCoveringDevice(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
-        {
-            var selectFL = new FrameLayout
-            {
-                Y = Application.GetRealHeight(1169),
-                Height = Application.GetRealHeight(752),
-            };
-            dialog.AddChidren(selectFL);
-            //selectFL.Animate = Animate.DownToUp;
-
-            var titleBG = new FrameLayout
-            {
-                Height = Application.GetRealHeight(138 * 2),
-                Radius = (uint)Application.GetRealHeight(58),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            selectFL.AddChidren(titleBG);
-
-            var titleFL = new FrameLayout
-            {
-                Height = Application.GetRealHeight(138),
-            };
-            selectFL.AddChidren(titleFL);
-
-            var line = new Button
-            {
-                Y = titleFL.Height - 1,
-                Height = 1,
-                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
-            };
-            titleFL.AddChidren(line);
-
-            var cancleBtn = new Button
-            {
-                X = Application.GetRealWidth(80),
-                Width = Application.GetRealWidth(200),
-                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
-                TextSize = 14,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextID = R.MyInternationalizationString.Cancel
-            };
-            titleFL.AddChidren(cancleBtn);
-
-            var deviceName = new Button
-            {
-                Width = Application.GetRealWidth(600),
-                Gravity = Gravity.CenterHorizontal,
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                TextSize = 16,
-                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
-            };
-            titleFL.AddChidren(deviceName);
-
-            var comfrimBtn = new Button
-            {
-                X = Application.GetRealWidth(800),
-                Width = Application.GetRealWidth(200),
-                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
-                TextSize = 14,
-                TextAlignment = TextAlignment.CenterRight,
-                TextID = R.MyInternationalizationString.Complete
-            };
-            titleFL.AddChidren(comfrimBtn);
-
-            var itemFL = new FrameLayout
-            {
-                Y = titleFL.Bottom,
-                Height = Application.GetRealHeight(613),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            selectFL.AddChidren(itemFL);
-
-            var open = new SelectDeviceWithSeekBarRow(0, 60);
-            itemFL.AddChidren(open);
-            open.Init();
-            open.SetTitle(R.MyInternationalizationString.Open);
-            open.IsSelected = true;
-
-            var shut = new SelectSceneStatuRow(0, 60 + 348 + 30);
-            itemFL.AddChidren(shut);
-            shut.Init();
-            shut.hideLine(true);
-            shut.SetTitle(R.MyInternationalizationString.Shut);
-
-            open.ClickButton.MouseUpEventHandler += (sender, e) =>
-            {
-                open.IsSelected = true;
-                shut.IsSelected = false;
-            };
-
-            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
-            {
-                open.IsSelected = false;
-                shut.IsSelected = true;
-            };
-
-            cancleBtn.MouseUpEventHandler = (sender, e) =>
-            {
-                dialog.RemoveAll();
-                dialog.RemoveFromParent();
-            };
-
-            open.SeekBar.OnProgressChangedEvent += (sender, e) =>
-            {
-                open.IsSelected = true;
-                shut.IsSelected = false;
-                open.SetSeekBarTitle();
-            };
-
-            if (sceneTarget.TaskList.Count > 0)
-            {
-                if (sceneTarget.TaskList[0].Data1 == 1)
-                {
-                    open.IsSelected = false;
-                    shut.IsSelected = true;
-                }
-                else
-                {
-                    open.IsSelected = true;
-                    shut.IsSelected = false;
-                    open.SetSeekBarProgress(sceneTarget.TaskList[0].Data2);
-                }
-            }
-
-            comfrimBtn.MouseUpEventHandler = (sender, e) =>
-            {
-                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
-
-                int taskType = 6;
-                int data1 = 0;
-                int data2 = 0;
-
-                if (shut.IsSelected)
-                {
-                    //鍏�
-                    data1 = 1;
-                    data2 = 0;
-                }
-                else
-                {
-                    //鐧惧垎姣�
-                    data1 = 5;
-                    data2 = open.SeekBar.Progress;
-                }
-
-                var taskInfo = new ZigBee.Device.Scene.TaskListInfo
-                {
-                    TaskType = taskType,
-                    Data1 = data1,
-                    Data2 = data2
-                };
-                taskList.Add(taskInfo);
-
-                sceneTarget.TaskList = taskList;
-                sceneTarget.DeviceUI = device;
-                selectedAction?.Invoke(sceneTarget);
-                dialog.RemoveFromParent();
-            };
-        }
-        /// <summary>
-        /// 璋冨厜鐏�
-        /// </summary>
-        /// <param name="dialog"></param>
-        /// <param name="device"></param>
-        /// <param name="sceneTarget"></param>
-        private void SelectDimmableLight(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
-        {
-            var selectFL = new FrameLayout
-            {
-                Y = Application.GetRealHeight(1169),
-                Height = Application.GetRealHeight(752),
-            };
-            dialog.AddChidren(selectFL);
-            //selectFL.Animate = Animate.DownToUp;
-
-            var titleBG = new FrameLayout
-            {
-                Height = Application.GetRealHeight(138 * 2),
-                Radius = (uint)Application.GetRealHeight(58),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            selectFL.AddChidren(titleBG);
-
-            var titleFL = new FrameLayout
-            {
-                Height = Application.GetRealHeight(138),
-            };
-            selectFL.AddChidren(titleFL);
-
-            var line = new Button
-            {
-                Y = titleFL.Height - 1,
-                Height = 1,
-                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
-            };
-            titleFL.AddChidren(line);
-
-            var cancleBtn = new Button
-            {
-                X = Application.GetRealWidth(80),
-                Width = Application.GetRealWidth(200),
-                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
-                TextSize = 14,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextID = R.MyInternationalizationString.Cancel
-            };
-            titleFL.AddChidren(cancleBtn);
-
-            var deviceName = new Button
-            {
-                Width = Application.GetRealWidth(600),
-                Gravity = Gravity.CenterHorizontal,
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                TextSize = 16,
-                TextAlignment = TextAlignment.CenterLeft,
-                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
-            };
-            titleFL.AddChidren(deviceName);
-
-            var comfrimBtn = new Button
-            {
-                X = Application.GetRealWidth(800),
-                Width = Application.GetRealWidth(200),
-                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
-                TextSize = 14,
-                TextAlignment = TextAlignment.CenterRight,
-                TextID = R.MyInternationalizationString.Complete
-            };
-            titleFL.AddChidren(comfrimBtn);
-
-            var itemFL = new FrameLayout
-            {
-                Y = titleFL.Bottom,
-                Height = Application.GetRealHeight(613),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            selectFL.AddChidren(itemFL);
-
-            var open = new SelectDeviceWithSeekBarRow(0, 60);
-            itemFL.AddChidren(open);
-            open.Init(254);
-            open.SetTitle(R.MyInternationalizationString.Open);
-            open.IsSelected = true;
-
-            var shut = new SelectSceneStatuRow(0, 60 + 348 + 30);
-            itemFL.AddChidren(shut);
-            shut.Init();
-            shut.hideLine(true);
-            shut.SetTitle(R.MyInternationalizationString.Shut);
-
-            open.ClickButton.MouseUpEventHandler += (sender, e) =>
-            {
-                open.IsSelected = true;
-                shut.IsSelected = false;
-            };
-
-            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
-            {
-                open.IsSelected = false;
-                shut.IsSelected = true;
-            };
-
-            cancleBtn.MouseUpEventHandler = (sender, e) =>
-            {
-                dialog.RemoveAll();
-                dialog.RemoveFromParent();
-            };
-
-            open.SeekBar.OnProgressChangedEvent += (sender, e) =>
-            {
-                open.IsSelected = true;
-                shut.IsSelected = false;
-                open.SetSeekBarTitle();
-            };
-
-            if (sceneTarget.TaskList.Count > 0)
-            {
-                if (sceneTarget.TaskList[0].Data1 == 0)
-                {
-                    open.IsSelected = false;
-                    shut.IsSelected = true;
-                }
-                else
-                {
-                    open.IsSelected = true;
-                    shut.IsSelected = false;
-                    open.SetSeekBarProgress(sceneTarget.TaskList[0].Data1);
-                }
-            }
-
-            comfrimBtn.MouseUpEventHandler = (sender, e) =>
-            {
-                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
-
-                int taskType = 3;
-                int data1 = 0;
-                int data2 = 0;
-
-                if (shut.IsSelected)
-                {
-                    //鍏�
-                    data1 = 0;
-                    data2 = 0;
-                }
-                else
-                {
-                    //鐧惧垎姣�
-                    data1 = open.SeekBar.Progress;
-                    data2 = 0;
-                }
-
-                var taskInfo = new ZigBee.Device.Scene.TaskListInfo
-                {
-                    TaskType = taskType,
-                    Data1 = data1,
-                    Data2 = data2
-                };
-                taskList.Add(taskInfo);
-
-                sceneTarget.TaskList = taskList;
-                sceneTarget.DeviceUI = device;
-                selectedAction?.Invoke(sceneTarget);
-                dialog.RemoveFromParent();
-            };
-        }
-        /// <summary>
-        /// 绌鸿皟
-        /// </summary>
-        /// <param name="dialog"></param>
-        /// <param name="device"></param>
-        /// <param name="sceneTarget"></param>
-        private void SelectThermostat(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
-        {
-        /// 娓╁害
-        int tempId=0;
-        /// 妯″紡
-        int modelId=0;
-        /// 椋庨��
-        int fanid=0;
-
-            var selectFL = new FrameLayout
-            {
-                Y = Application.GetRealHeight(815),
-                Height = Application.GetRealHeight(1106),
-            };
-            dialog.AddChidren(selectFL);
-            //selectFL.Animate = Animate.DownToUp;
-
-            var titleBG = new FrameLayout
-            {
-                Height = Application.GetRealHeight(138 * 2),
-                Radius = (uint)Application.GetRealHeight(58),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            selectFL.AddChidren(titleBG);
-
-            var titleFL = new FrameLayout
-            {
-                Height = Application.GetRealHeight(138),
-            };
-            selectFL.AddChidren(titleFL);
-
-            var line = new Button
-            {
-                Y = titleFL.Height - 1,
-                Height = 1,
-                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
-            };
-            titleFL.AddChidren(line);
-
-            var cancleBtn = new Button
-            {
-                X = Application.GetRealWidth(80),
-                Width = Application.GetRealWidth(200),
-                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
-                TextSize = 14,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextID = R.MyInternationalizationString.Cancel
-            };
-            titleFL.AddChidren(cancleBtn);
-
-            var deviceName = new Button
-            {
-                Width = Application.GetRealWidth(600),
-                Gravity = Gravity.CenterHorizontal,
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                TextSize = 16,
-                TextAlignment = TextAlignment.CenterLeft,
-                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
-            };
-            titleFL.AddChidren(deviceName);
-
-            var comfrimBtn = new Button
-            {
-                X = Application.GetRealWidth(800),
-                Width = Application.GetRealWidth(200),
-                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
-                TextSize = 14,
-                TextAlignment = TextAlignment.CenterRight,
-                TextID = R.MyInternationalizationString.Complete
-            };
-            titleFL.AddChidren(comfrimBtn);
-
-            var itemFL = new FrameLayout
-            {
-                Y = titleFL.Bottom,
-                Height = Application.GetRealHeight(968),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            selectFL.AddChidren(itemFL);
-
-            var open = new SelectDeviceWithPickViewRow(0, 60);
-            itemFL.AddChidren(open);
-            open.Init();
-            open.SetTitle(R.MyInternationalizationString.Open);
-            open.IsSelected = true;
-
-            open.pickerView.OnSelectChangeEvent = (l1, l2, l3) =>
-            {
-                tempId = l1;
-                modelId = l2;
-                fanid = l3;
-            };
-
-            var shut = new SelectSceneStatuRow(0, 60 + 703 + 30);
-            itemFL.AddChidren(shut);
-            shut.Init();
-            shut.hideLine(true);
-            shut.SetTitle(R.MyInternationalizationString.Shut);
-
-            open.ClickButton.MouseUpEventHandler += (sender, e) =>
-            {
-                open.IsSelected = true;
-                shut.IsSelected = false;
-            };
-
-            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
-            {
-                open.IsSelected = false;
-                shut.IsSelected = true;
-            };
-
-            cancleBtn.MouseUpEventHandler = (sender, e) =>
-            {
-                dialog.RemoveAll();
-                dialog.RemoveFromParent();
-            };
-
-            if (sceneTarget.TaskList.Count > 0)
-            {
-                if (sceneTarget.TaskList.Count == 1)
-                {
-                    open.IsSelected = false;
-                    shut.IsSelected = true;
-                }
-                else
-                {
-                    open.IsSelected = true;
-                    shut.IsSelected = false;
-
-                    for (int i = 0; i < sceneTarget.TaskList.Count; i++)
-                    {
-                        var tasklist = sceneTarget.TaskList[i];
-                        if (tasklist.Data1 == 6)
-                        {
-                            fanid = open.fanList.IndexOf(tasklist.Data2);
-                        }
-                        if (tasklist.Data1 == 3)
-                        {
-                            modelId = open.modeList.IndexOf(tasklist.Data2);
-                        }
-                        if (tasklist.Data1 == 4 || tasklist.Data1 == 5)
-                        {
-                            tempId = open.temperatureList.IndexOf(tasklist.Data2 / 100);
-                        }
-                    }
-                    open.pickerView.setCurrentItems(tempId, modelId, fanid);
-                }
-            }
-
-            comfrimBtn.MouseUpEventHandler = (sender, e) =>
-            {
-
-                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
-
-                int taskType = 5;
-                int data1 = 0;
-                int data2 = 0;
-
-                if (shut.IsSelected)
-                {
-                    //鍏�
-                    data1 = 3;
-                    data2 = 0;
-                    var taskInfo = new ZigBee.Device.Scene.TaskListInfo
-                    {
-                        TaskType = taskType,
-                        Data1 = data1,
-                        Data2 = data2
-                    };
-                    taskList.Add(taskInfo);
-                }
-                else
-                {
-                    //fan
-                    var taskInfo = new ZigBee.Device.Scene.TaskListInfo
-                    {
-                        TaskType = taskType,
-                        Data1 = 6,
-                        Data2 = open.fanList[fanid]
-                    };
-                    taskList.Add(taskInfo);
-
-                    //mode
-                    var taskInfo2 = new ZigBee.Device.Scene.TaskListInfo
-                    {
-                        TaskType = taskType,
-                        Data1 = 3,
-                        Data2 = open.modeList[modelId]
-                    };
-                    taskList.Add(taskInfo2);
-
-                    //tem
-                    if (open.modeList[modelId] == 4)
-                    {
-                        //heat
-                        var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo
-                        {
-                            TaskType = taskType,
-                            Data1 = 4,
-                            Data2 = open.temperatureList[tempId] * 100
-                        };
-                        taskList.Add(taskInfo3);
-
-                    }
-                    else
-                    {
-                        //heat
-                        var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo
-                        {
-                            TaskType = taskType,
-                            Data1 = 5,
-                            Data2 = open.temperatureList[tempId] * 100
-                        };
-                        taskList.Add(taskInfo3);
-                    }
-                }
-
-                sceneTarget.TaskList = taskList;
-                sceneTarget.DeviceUI = device;
-                selectedAction?.Invoke(sceneTarget);
-                dialog.RemoveFromParent();
-            };
-        }
-
-        #endregion
-
-    }
-}
+                        if (targetDevice.DeviceUI == null) continue;
+                        devImgPath = targetDevice.DeviceUI.IconPath;
+                        devNameText = Common.LocalDevice.Current.GetDeviceEpointName(targetDevice.DeviceUI);
+
+                        var targetRow = new SceneTargetFunctionRow(13);
+                        targetRow.Init();
+                        targetRow.SetIcon(devImgPath);
+                        targetRow.SetNameText(devNameText);
+                        targetRow.SetZoneText(HdlRoomLogic.Current.GetRoomNameByDevice(targetDevice.DeviceUI, ","));
+                        targetRow.SetStatuText(targetDevice.GetDeviceStatu());
+                        targetRowLayout.AddChidren(targetRow);
+                        if (i == sceneTargetDevicesList.Count - 1)
+                        {
+                            targetRow.HideLine(true);
+                        }
+                    }
+                    else if (targetDevice.Type == 2)
+                    {
+                        devNameText = CommonFormResouce.GetTimeString(targetDevice.DelayTime);
+                        devNameText += Language.StringByID(R.MyInternationalizationString.Later);
+                        var targetRow = new SceneTargetTimeRow(13);
+                        targetRow.Init();
+                        targetRow.SetTitle(devNameText);
+                        targetRowLayout.AddChidren(targetRow);
+                        if (i == sceneTargetDevicesList.Count - 1)
+                        {
+                            targetRow.HideLine(true);
+                        }
+                    }
+                    else if (targetDevice.Type == 1)
+                    {
+                        devImgPath = "Scene/SceneIcon.png";
+                        devNameText = targetDevice.SceneName;
+
+                        var targetRow = new SceneTargetFunctionRow(13);
+                        targetRow.Init();
+                        targetRow.SetIcon(devImgPath);
+                        targetRow.SetNameText(devNameText);
+                        targetRow.SetZoneText(HdlSceneLogic.Current.GetZoneById(targetDevice.SceneUI.Id));
+                        targetRowLayout.AddChidren(targetRow);
+                        if (i == sceneTargetDevicesList.Count - 1)
+                        {
+                            targetRow.HideLine(true);
+                        }
+                    }
+
+                    var editBtn = new RowLayoutEditButton();
+                    targetRowLayout.AddRightView(editBtn);
+                    //缂栬緫璁惧
+                    editBtn.MouseUpEventHandler += detailMouseUpEventHandler;
+                    var delBtn = new RowLayoutDeleteButton();
+                    targetRowLayout.AddRightView(delBtn);
+                    //鍒犻櫎璁惧
+                    delBtn.MouseUpEventHandler += (sender, e) =>
+                    {
+                        sceneTargetDevicesList.Remove(targetDevice);
+                        RefreshTargetListView();
+                    };
+
+                    //璁惧璇︾粏璁剧疆鐣岄潰
+                    void detailMouseUpEventHandler(object sender, MouseEventArgs e)
+                    {
+                        if (targetDevice.Type == 0)
+                        {
+                            if (targetDevice.DeviceUI == null)
+                            {
+                                return;
+                            }
+
+                            ShowSelectAction(targetDevice.DeviceUI, targetDevice);
+                            selectedAction = (selectedDevice) =>
+                            {
+                                var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedDevice.SceneTargetDeviceUIID);
+                                if (targetDeviceUI != null)
+                                {
+                                    targetDeviceUI.DeviceUI = selectedDevice.DeviceUI;
+                                    targetDeviceUI.TaskList = selectedDevice.TaskList;
+                                }
+                                RefreshTargetListView();
+                            };
+
+                        }
+                        else if (targetDevice.Type == 2)
+                        {
+                            var delayTimeView = new SelectDelayTime();
+                            UserView.HomePage.Instance.AddChidren(delayTimeView);
+                            UserView.HomePage.Instance.PageIndex += 1;
+                            delayTimeView.sceneTargetDevice = targetDevice;
+                            delayTimeView.totalSecond = targetDevice.DelayTime;
+                            delayTimeView.Show();
+                            delayTimeView.selectedTimeAction = (second) =>
+                            {
+                                var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == second.SceneTargetDeviceUIID);
+                                if (targetDeviceUI != null)
+                                {
+                                    targetDeviceUI.DelayTime = second.DelayTime;
+                                }
+                                RefreshTargetListView();
+                            };
+                        }
+                        else if (targetDevice.Type == 1)
+                        {
+                            var sceneView = new SelectScene();
+                            UserView.HomePage.Instance.AddChidren(sceneView);
+                            UserView.HomePage.Instance.PageIndex += 1;
+                            sceneView.sceneTargetDevice = targetDevice;
+                            sceneView.sceneUI = targetDevice.SceneUI;
+                            sceneView.currentSceneUI = modifySceneUI;
+                            sceneView.Show();
+                            sceneView.selectedAction = (selectedScene) =>
+                            {
+                                var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedScene.SceneTargetDeviceUIID);
+                                if (targetDeviceUI != null)
+                                {
+                                    targetDeviceUI.SceneName = selectedScene.SceneName;
+                                    targetDevice.SceneUI = selectedScene.SceneUI;
+                                    targetDevice.ElseScenesId = selectedScene.ElseScenesId;
+                                }
+                                RefreshTargetListView();
+                            };
+                        }
+                    }
+                }
+            }
+        }
+        /// <summary>
+        /// Show this instance.
+        /// </summary>
+        public void Show()
+        {
+            Init();
+
+            AddTop();
+
+            AddBodyView();
+
+        }
+
+        #region Add____________________________________
+
+        /// <summary>
+        /// Init
+        /// </summary>
+        private void Init()
+        {
+
+        }
+
+        /// <summary>
+        /// AddTop
+        /// </summary>
+        private void AddTop()
+        {
+            var top = new TopFrameLayout();
+            AddChidren(top);
+            top.InitTopview();
+            if (isModify)
+            {
+                top.SetTopTitle(R.MyInternationalizationString.EditorScene);
+            }
+            else
+            {
+                top.SetTopTitle(R.MyInternationalizationString.AddScence);
+            }
+            top.backButton.MouseUpEventHandler += (sender, e) =>
+            {
+                RemoveFromParent();
+            };
+        }
+
+        /// <summary>
+        /// AddBodyView
+        /// </summary>
+        private void AddBodyView()
+        {
+            var bodyScrolView = new VerticalScrolViewLayout()
+            {
+                Y = Application.GetRealHeight(184),
+                Height = Application.GetRealHeight(1737),
+                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
+            };
+            AddChidren(bodyScrolView);
+
+            bodyFrameLayout = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(1086 + 127),
+                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
+            };
+            bodyScrolView.AddChidren(bodyFrameLayout);
+
+            var imgFL = new FrameLayout
+            {
+                Height = Application.GetRealHeight(559),
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+            };
+            bodyFrameLayout.AddChidren(imgFL);
+
+            var backGround1 = new ImageView()
+            {
+                Y = Application.GetRealHeight(46),
+                Width = Application.GetMinRealAverage(916),
+                Height = Application.GetMinRealAverage(487),
+                Gravity = Gravity.CenterHorizontal,
+                ImagePath = "Room/Room_Rectangle.png"
+            };
+            imgFL.AddChidren(backGround1);
+
+            backGround = new ImageView()
+            {
+                Y = Application.GetRealHeight(46),
+                Width = Application.GetMinRealAverage(887),
+                Height = Application.GetMinRealAverage(444),
+                Gravity = Gravity.CenterHorizontal,
+                Radius = (uint)Application.GetMinRealAverage(CommonFormResouce.BigFormRadius),
+                ImagePath = "SceneIcon/3.png"
+            };
+            imgFL.AddChidren(backGround);
+
+            var infoFL = new FrameLayout
+            {
+                Y = imgFL.Bottom + Application.GetRealHeight(23),
+                Height = Application.GetRealHeight(418),
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+            };
+            bodyFrameLayout.AddChidren(infoFL);
+
+            var infoEdit = new Button
+            {
+                X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                Height = Application.GetRealHeight(130),
+                Width = Application.GetRealWidth(700),
+                TextID = R.MyInternationalizationString.EditInfo,
+                TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = 15,
+                //IsBold=true
+            };
+            infoFL.AddChidren(infoEdit);
+
+
+            var nameRow = new DeviceInfoEditRow(130);
+            nameRow.Init();
+            nameRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.SceneName)}:");
+            nameRow.SetPlaceHoldText(R.MyInternationalizationString.PleaseInputSceneName);
+            infoFL.AddChidren(nameRow);
+
+            var zoneRow = new DeviceInfoRow(257);
+            zoneRow.Y = nameRow.Bottom + Application.GetRealHeight(14);
+            zoneRow.Init();
+            zoneRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.BelongZone)}:");
+            //zoneRow.SetTitle(curRoom.Name);
+            infoFL.AddChidren(zoneRow);
+            zoneRow.HideLine(true);
+
+            var targetFL = new FrameLayout()
+            {
+                Y = infoFL.Bottom + Application.GetRealHeight(23),
+                Height = Application.GetRealHeight(346)
+            };
+            bodyFrameLayout.AddChidren(targetFL);
+
+            var targetBG = new FrameLayout
+            {
+                Height = Application.GetRealHeight(334),
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+            };
+            targetFL.AddChidren(targetBG);
+
+            var addTargetFL = new FrameLayout
+            {
+                Y = Application.GetRealHeight(46),
+                Height = Application.GetRealHeight(127),
+            };
+            targetFL.AddChidren(addTargetFL);
+
+            var target = new Button()
+            {
+                X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                Height = Application.GetRealHeight(127) - 1,
+                Width = Application.GetRealWidth(600),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                TextID = R.MyInternationalizationString.AddScentTargetAction,
+                Gravity = Gravity.CenterVertical,
+                TextSize = 15
+            };
+            addTargetFL.AddChidren(target);
+
+            var targetAdd = new Button
+            {
+                X = Application.GetRealWidth(950),
+                Y = Application.GetRealHeight(46),
+                Width = Application.GetMinRealAverage(72),
+                Height = Application.GetMinRealAverage(72),
+                Gravity = Gravity.CenterVertical,
+                UnSelectedImagePath = "Item/Add.png",
+            };
+            addTargetFL.AddChidren(targetAdd);
+            var targetLine = new Button()
+            {
+                Y = target.Bottom,
+                Height = 1,
+                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
+            };
+            addTargetFL.AddChidren(targetLine);
+
+            TargetListScrolView = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(173)
+            };
+            bodyScrolView.AddChidren(TargetListScrolView);
+
+
+
+            confirmBtn = new CommonForm.CompleteButton(1656, 907, 127);
+            confirmBtn.TextID = R.MyInternationalizationString.uFinish;
+            AddChidren(confirmBtn);
+
+            if (isModify)
+            {
+                IconPathType = modifySceneUI.IconPathType;
+                OldIconPathType = modifySceneUI.IconPathType;
+                if (IconPathType != 0)
+                {
+                    OldBackgroundImagePath = modifySceneUI.IconPath;
+                }
+                if (modifySceneUI.IconPathType == 0)
+                {
+                    backGround.ImagePath = modifySceneUI.IconPath;
+                }
+                else
+                {
+                    backGround.ImagePath = System.IO.Path.Combine(Config.Instance.FullPath, modifySceneUI.IconPath);
+                }
+                nameRow.SetTitle(modifySceneUI.Name);
+                if (Config.Instance.Home.FloorDics.Count == 0)
+                {
+                    zoneRow.SetTitle($"{modifyRoom.Name}");
+                }
+                else
+                {
+                    zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(modifyRoom.FloorId)}锛寋modifyRoom.Name}");
+                }
+                curRoom = modifyRoom;
+                sceneTargetDevicesList.AddRange(modifySceneTargetDevicesList);
+            }
+
+            RefreshTargetListView();
+
+            #region event
+
+            EventHandler<MouseEventArgs> backGroundIMGHander = (sender, e) =>
+            {
+                if (curRoom != null && curRoom.IsSharedRoom)
+                {
+                    RoomCommon.ShowTipRoomIsShared();
+                    return;
+                }
+
+                int selectRow_Height = 150;
+                int selectRow_Width = 1034;
+                var selectFL = new FrameLayout()
+                {
+                    BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
+                };
+                AddChidren(selectFL);
+
+                var itemFL = new FrameLayout()
+                {
+                    Y = Application.GetRealHeight(1276),
+                    Height = Application.GetRealHeight(450),
+                    Width = Application.GetRealWidth(selectRow_Width),
+                    Gravity = Gravity.CenterHorizontal,
+                    Radius = (uint)Application.GetRealHeight(35),
+                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor
+                };
+                selectFL.AddChidren(itemFL);
+                //itemFL.Animate = Animate.DownToUp;
+
+                var selectLocalPicture = new Button()
+                {
+                    Height = Application.GetRealHeight(selectRow_Height) - 1,
+                    TextID = R.MyInternationalizationString.LocalPicture,
+                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+                    TextSize = 17
+                };
+                itemFL.AddChidren(selectLocalPicture);
+                var selectLocalLine = new Button()
+                {
+                    Y = selectLocalPicture.Bottom,
+                    Height = 1,
+                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
+                };
+                itemFL.AddChidren(selectLocalLine);
+
+                var selectPhotographBtn = new Button()
+                {
+                    Y = selectLocalLine.Bottom,
+                    Height = Application.GetRealHeight(selectRow_Height) - 1,
+                    TextID = R.MyInternationalizationString.Photograph,
+                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+                    TextSize = 17
+                };
+                itemFL.AddChidren(selectPhotographBtn);
+                var selectPhotographLine = new Button()
+                {
+                    Y = selectPhotographBtn.Bottom,
+                    Height = 1,
+                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2,
+                };
+                itemFL.AddChidren(selectPhotographLine);
+
+                var selectAblumsBtn = new Button()
+                {
+                    Y = selectPhotographLine.Bottom,
+                    Height = Application.GetRealHeight(selectRow_Height) - 1,
+                    TextID = R.MyInternationalizationString.MyAblums,
+                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+                    TextSize = 17
+                };
+                itemFL.AddChidren(selectAblumsBtn);
+
+                var cancelBtn = new Button()
+                {
+                    Y = Application.GetRealHeight(1742),
+                    Height = Application.GetRealHeight(selectRow_Height),
+                    Width = Application.GetRealWidth(selectRow_Width),
+                    Gravity = Gravity.CenterHorizontal,
+                    TextID = R.MyInternationalizationString.Cancel,
+                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor,
+                    Radius = (uint)Application.GetRealHeight(35),
+                    TextSize = 17
+                };
+                selectFL.AddChidren(cancelBtn);
+
+                selectLocalPicture.MouseUpEventHandler += (send, ee) =>
+                {
+                    selectFL.RemoveFromParent();
+                    var localPic = new CategorySceneSelectImgByLocal();
+                    Shared.Phone.UserView.HomePage.Instance.AddChidren(localPic);
+                    Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                    localPic.Show();
+                    localPic.action = (imgPath) =>
+                    {
+                        IconPathType = 0;
+                        backGround.ImageBytes = null;
+                        backGround.ImagePath = imgPath;
+                    };
+                };
+                selectPhotographBtn.MouseUpEventHandler += (send, ee) =>
+                {
+                    selectFL.RemoveFromParent();
+                    var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
+                    var fileName = $"SceneIcon_{tradeTime}.png";
+                    //閫氳繃鐩告満鎷嶇収瑁佸壀
+                    CropImage.TakePicture((imagePath) =>
+                    {
+                        if (string.IsNullOrEmpty(imagePath))
+                        {
+                            return;
+                        }
+                        if (isModify)
+                        {
+                            if (IconPathType != 0)
+                            {
+                                Global.DeleteFilebyHomeId(backGround.ImagePath);
+                                HdlAutoBackupLogic.DeleteFile(backGround.ImagePath);
+                            }
+                        }
+
+                        IconPathType = 1;
+                        backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
+                        backGround.ImagePath = imagePath;
+                        System.IO.File.Delete(imagePath);
+
+                    }, fileName, 2, 1);
+                };
+
+                selectAblumsBtn.MouseUpEventHandler += (send, ee) =>
+                {
+                    selectFL.RemoveFromParent();
+                    var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
+                    var fileName = $"SceneIcon_{tradeTime}.png";
+                    //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
+                    CropImage.SelectPicture((imagePath) =>
+                    {
+                        if (string.IsNullOrEmpty(imagePath))
+                        {
+                            return;
+                        }
+                        if (isModify)
+                        {
+                            if (IconPathType != 0)
+                            {
+                                Global.DeleteFilebyHomeId(backGround.ImagePath);
+                                HdlAutoBackupLogic.DeleteFile(backGround.ImagePath);
+                            }
+                        }
+
+                        IconPathType = 2;
+                        backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
+                        backGround.ImagePath = imagePath;
+                        System.IO.File.Delete(imagePath);
+
+                    }, fileName, 2, 1);
+                };
+
+                cancelBtn.MouseUpEventHandler += (send, ee) =>
+                {
+                    selectFL.RemoveFromParent();
+                };
+                selectFL.MouseUpEventHandler += (send, ee) =>
+                {
+                    selectFL.RemoveFromParent();
+                };
+            };
+            backGround.MouseUpEventHandler += backGroundIMGHander;
+
+            //鍖哄煙
+            EventHandler<MouseEventArgs> zoneHander = (sender, e) =>
+            {
+                var zone = new SelectZone();
+                zone.Init();
+                zone.ZoneAction += (selectRoom) =>
+                {
+                    curRoom = selectRoom;
+                    zoneRow.SetTitle(HdlRoomLogic.Current.GetZoneName(selectRoom));
+                };
+            };
+            zoneRow.ClickBtn.MouseUpEventHandler += zoneHander;
+
+            //鎵ц鐩爣-娣诲姞鎵ц璁惧
+            EventHandler<MouseEventArgs> targetAddHander = (sender, e) =>
+            {
+
+                //if (curRoom == null)
+                //{
+                //    RoomCommon.ShowTipNoRoom();
+                //    return;
+                //}
+                if (curRoom != null)
+                {
+                    if (curRoom.IsSharedRoom)
+                    {
+                        RoomCommon.ShowTipRoomIsShared();
+                        return;
+                    }
+                }
+
+                int selectRow_Height = 150;
+                int selectRow_Width = 1034;
+                var selectFL = new FrameLayout()
+                {
+                    BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
+                };
+                AddChidren(selectFL);
+
+                var itemFL = new FrameLayout()
+                {
+                    Y = Application.GetRealHeight(1276),
+                    Height = Application.GetRealHeight(450),
+                    Width = Application.GetRealWidth(selectRow_Width),
+                    Gravity = Gravity.CenterHorizontal,
+                    Radius = (uint)Application.GetRealHeight(35),
+                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor
+                };
+                selectFL.AddChidren(itemFL);
+                //itemFL.Animate = Animate.DownToUp;
+
+                var selectedFunctionBtn = new Button()
+                {
+                    Height = Application.GetRealHeight(selectRow_Height) - 1,
+                    TextID = R.MyInternationalizationString.Function,
+                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+                    TextSize = 17
+                };
+                itemFL.AddChidren(selectedFunctionBtn);
+                var selectedFunctionLine = new Button()
+                {
+                    Y = selectedFunctionBtn.Bottom,
+                    Height = 1,
+                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
+                };
+                itemFL.AddChidren(selectedFunctionLine);
+
+                var selectedSceneBtn = new Button()
+                {
+                    Y = selectedFunctionLine.Bottom,
+                    Height = Application.GetRealHeight(selectRow_Height) - 1,
+                    TextID = R.MyInternationalizationString.Scence,
+                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+                    TextSize = 17
+                };
+                itemFL.AddChidren(selectedSceneBtn);
+                var selectedSceneLine = new Button()
+                {
+                    Y = selectedSceneBtn.Bottom,
+                    Height = 1,
+                    BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2,
+                };
+                itemFL.AddChidren(selectedSceneLine);
+
+                var selectedTimerBtn = new Button()
+                {
+                    Y = selectedSceneLine.Bottom,
+                    Height = Application.GetRealHeight(selectRow_Height) - 1,
+                    TextID = R.MyInternationalizationString.Delay,
+                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+                    TextSize = 17
+                };
+                itemFL.AddChidren(selectedTimerBtn);
+
+
+                var cancelBtn = new Button()
+                {
+                    Y = Application.GetRealHeight(1742),
+                    Height = Application.GetRealHeight(selectRow_Height),
+                    Width = Application.GetRealWidth(selectRow_Width),
+                    Gravity = Gravity.CenterHorizontal,
+                    TextID = R.MyInternationalizationString.Cancel,
+                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor,
+                    Radius = (uint)Application.GetRealHeight(35),
+                    TextSize = 17
+                };
+                selectFL.AddChidren(cancelBtn);
+
+                //娣诲姞鍔熻兘
+                selectedFunctionBtn.MouseUpEventHandler += (send, ee) =>
+                {
+                    selectFL.RemoveFromParent();
+                    var deviceView = new SelectDevice();
+                    UserView.HomePage.Instance.AddChidren(deviceView);
+                    UserView.HomePage.Instance.PageIndex += 1;
+                    deviceView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList;
+                    deviceView.Show();
+                    deviceView.selectedAction = (selectedDevice) =>
+                    {
+                        sceneTargetDevicesList.Add(selectedDevice);
+                        RefreshTargetListView();
+                    };
+                };
+                //娣诲姞鍦烘櫙
+                selectedSceneBtn.MouseUpEventHandler += (send, ee) =>
+                {
+                    selectFL.RemoveFromParent();
+                    var sceneView = new SelectScene();
+                    UserView.HomePage.Instance.AddChidren(sceneView);
+                    UserView.HomePage.Instance.PageIndex += 1;
+                    sceneView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList;
+                    sceneView.currentSceneUI = modifySceneUI;
+                    sceneView.Show();
+                    sceneView.selectedAction = (selectedScene) =>
+                    {
+                        sceneTargetDevicesList.Add(selectedScene);
+                        RefreshTargetListView();
+                    };
+
+                };
+                //娣诲姞鏃堕棿闂撮殧
+                selectedTimerBtn.MouseUpEventHandler += (send, ee) =>
+                {
+                    selectFL.RemoveFromParent();
+                    var delayTimeView = new SelectDelayTime();
+                    UserView.HomePage.Instance.AddChidren(delayTimeView);
+                    UserView.HomePage.Instance.PageIndex += 1;
+                    delayTimeView.Show();
+                    delayTimeView.selectedTimeAction = (second) =>
+                    {
+                        sceneTargetDevicesList.Add(second);
+                        RefreshTargetListView();
+                    };
+                };
+
+                cancelBtn.MouseUpEventHandler += (send, ee) =>
+                {
+                    selectFL.RemoveFromParent();
+                };
+                selectFL.MouseUpEventHandler += (send, ee) =>
+                {
+                    selectFL.RemoveFromParent();
+                };
+            };
+            targetAdd.MouseUpEventHandler += targetAddHander;
+            targetFL.MouseUpEventHandler += targetAddHander;
+            target.MouseUpEventHandler += targetAddHander;
+            addTargetFL.MouseUpEventHandler += targetAddHander;
+            //纭畾娣诲姞鐩爣
+            confirmBtn.MouseUpEventHandler += async (sender, e) =>
+            {
+                if (curRoom == null)
+                {
+                    RoomCommon.ShowTipNoRoom();
+                    return;
+                }
+                if (curRoom.IsSharedRoom)
+                {
+                    RoomCommon.ShowTipRoomIsShared();
+                    return;
+                }
+
+                if (isModify)
+                {
+                    if (string.IsNullOrEmpty(nameRow.NameText.Text))
+                    {
+                        CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull));
+                        return;
+                    }
+                    else
+                    {
+                        try
+                        {
+                            var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
+                            var fileName = $"SceneIcon_{tradeTime}.png";
+                            if (modifySceneUI.Name != nameRow.NameText.Text.Trim())
+                            {
+                                if (HdlSceneLogic.Current.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null)
+                                {
+                                    CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
+                                    return;
+                                }
+                                var r = await ZigBee.Device.Scene.RenameSceneAsync(modifySceneUI.Id, nameRow.NameText.Text.Trim());
+                                var reName = r.sceneRenameResponseData.Result;
+                                if (reName == 0)
+                                {
+                                    return;
+                                }
+                                else if (reName == 1)
+                                {
+                                    modifySceneUI.Name = nameRow.NameText.Text.Trim();
+
+                                }
+                                else if (reName == 2)
+                                {
+                                    return;
+                                }
+                            }
+                            if (OldIconPathType != 0)
+                            {
+                                Shared.IO.FileUtils.DeleteFile(System.IO.Path.Combine(Config.Instance.FullPath, OldBackgroundImagePath));
+                                HdlAutoBackupLogic.DeleteFile(OldBackgroundImagePath);
+                            }
+                            if (IconPathType == 1 || IconPathType == 2)
+                            {
+                                Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes);
+                                HdlAutoBackupLogic.AddOrEditorFile(fileName);
+                                modifySceneUI.IconPath = fileName;
+                            }
+                            else
+                            {
+                                modifySceneUI.IconPath = backGround.ImagePath;
+                            }
+                            modifySceneUI.IconPathType = IconPathType;
+
+                            CommonPage.Loading.Start();
+                            var memberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData>();
+                            for (int i = 0; i < sceneTargetDevicesList.Count; i++)
+                            {
+                                var sceneTarget = sceneTargetDevicesList[i];
+
+                                if (sceneTarget.Type == 0)
+                                {
+                                    if (sceneTarget.DeviceUI == null)
+                                    {
+                                        continue;
+                                    }
+                                    var memberData = new AddSceneMemberData
+                                    {
+                                        Type = 0,
+                                        ScenesId = 0,
+                                        DeviceAddr = sceneTarget.DeviceUI.DeviceAddr,
+                                        Epoint = sceneTarget.DeviceUI.DeviceEpoint,
+                                        TaskList = sceneTarget.TaskList,
+                                        DelayTime = 0,
+                                        MemberNumber = i + 1
+                                    };
+                                    memberDataList.Add(memberData);
+                                }
+                                else if (sceneTarget.Type == 1)
+                                {
+                                    var memberData = new AddSceneMemberData
+                                    {
+                                        Type = 1,
+                                        ScenesId = 0,
+                                        ElseScenesId = sceneTarget.ElseScenesId,
+                                        DelayTime = 0,
+                                        MemberNumber = i + 1
+                                    };
+                                    memberDataList.Add(memberData);
+                                }
+                                else if (sceneTarget.Type == 2)
+                                {
+                                    var memberData = new AddSceneMemberData
+                                    {
+                                        Type = 2,
+                                        ScenesId = 0,
+                                        DelayTime = sceneTarget.DelayTime,
+                                        MemberNumber = i + 1
+                                    };
+                                    memberDataList.Add(memberData);
+                                }
+                            }
+
+                            var sceneRemoveMemberData = new SceneRemoveMemberData { };
+                            var removeSceneDeviceListInfoList = new List<RemoveSceneDeviceListInfo> { };
+                            for (int i = 0; i < modifySceneTargetDevicesList.Count; i++)
+                            {
+                                var sceneTarget = modifySceneTargetDevicesList[i];
+                                if (sceneTarget.Type == 0)
+                                {
+                                    if (sceneTarget.DeviceUI == null)
+                                    {
+                                        continue;
+                                    }
+                                    var removeDevice = new RemoveSceneDeviceListInfo
+                                    {
+                                        Type = 0,
+                                        DeviceAddr = sceneTarget.DeviceUI.DeviceAddr,
+                                        Epoint = sceneTarget.DeviceUI.DeviceEpoint,
+                                        MemberNumber = sceneTarget.DelayTimeSerialNumber
+                                    };
+                                    removeSceneDeviceListInfoList.Add(removeDevice);
+                                }
+                                else if (sceneTarget.Type == 1)
+                                {
+                                    var removeDevice = new ZigBee.Device.Scene.RemoveSceneDeviceListInfo
+                                    {
+                                        Type = 1,
+                                        ElseScenesId = sceneTarget.ElseScenesId,
+                                        MemberNumber = sceneTarget.DelayTimeSerialNumber
+                                    };
+                                    removeSceneDeviceListInfoList.Add(removeDevice);
+                                }
+                                else
+                                {
+                                    var removeDevice = new ZigBee.Device.Scene.RemoveSceneDeviceListInfo
+                                    {
+                                        Type = 2,
+                                        DelayTime = sceneTarget.DelayTime,
+                                        MemberNumber = sceneTarget.DelayTimeSerialNumber
+                                    };
+                                    removeSceneDeviceListInfoList.Add(removeDevice);
+                                }
+                            }
+                            sceneRemoveMemberData.DeviceList = removeSceneDeviceListInfoList;
+                            sceneRemoveMemberData.ScenesId = modifySceneUI.Id;
+                            var result = await HdlSceneLogic.Current.ModifyScene(modifySceneUI, sceneRemoveMemberData, memberDataList);
+                            if (result == 1)
+                            {
+                                if (modifyRoom != curRoom)
+                                {
+                                    modifyRoom.ListSceneId.Remove(modifySceneUI.Id);
+                                    curRoom.ListSceneId.Add(modifySceneUI.Id);
+                                    modifyRoom.Save();
+                                    curRoom.Save();
+                                }
+                                EditorAction?.Invoke(modifySceneUI, curRoom);
+                                RemoveFromParent();
+                            }
+                            else if (result == 0)
+                            {
+                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain));
+                            }
+                            else if (result == -1)
+                            {
+                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
+                            }
+                        }
+                        catch (Exception ex)
+                        {
+                            System.Console.WriteLine($"鍒嗙被娣诲姞鍦烘櫙鍑洪敊{ex.Message}");
+                        }
+                        finally
+                        {
+                            CommonPage.Loading.Hide();
+                        }
+                    }
+                }
+                else
+                {
+                    //鏂板
+                    if (string.IsNullOrEmpty(nameRow.NameText.Text))
+                    {
+                        CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.SceneNameCannotBeNull));
+                        return;
+                    }
+                    else
+                    {
+                        try
+                        {
+                            var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
+                            var fileName = $"SceneIcon_{tradeTime}.png";
+                            string imgPath;
+                            if (IconPathType == 1 || IconPathType == 2)
+                            {
+                                Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes);
+                                HdlAutoBackupLogic.AddOrEditorFile(fileName);
+                                imgPath = fileName;
+                            }
+                            else
+                            {
+                                imgPath = backGround.ImagePath;
+                            }
+                            //if (Common.Room.CurrentRoom.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null)
+                            //{
+                            //    CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
+                            //    return;
+                            //}
+                            CommonPage.Loading.Start();
+                            var memberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData>();
+                            for (int i = 0; i < sceneTargetDevicesList.Count; i++)
+                            {
+                                var sceneTarget = sceneTargetDevicesList[i];
+
+                                if (sceneTarget.Type == 0)
+                                {
+                                    if (sceneTarget.DeviceUI == null)
+                                    {
+                                        continue;
+                                    }
+                                    var memberData = new AddSceneMemberData
+                                    {
+                                        Type = 0,
+                                        ScenesId = 0,
+                                        DeviceAddr = sceneTarget.DeviceUI.DeviceAddr,
+                                        Epoint = sceneTarget.DeviceUI.DeviceEpoint,
+                                        TaskList = sceneTarget.TaskList,
+                                        DelayTime = 0,
+                                        MemberNumber = i + 1
+                                    };
+                                    memberDataList.Add(memberData);
+                                }
+                                else if (sceneTarget.Type == 1)
+                                {
+                                    var memberData = new AddSceneMemberData
+                                    {
+                                        Type = 1,
+                                        ScenesId = 0,
+                                        ElseScenesId = sceneTarget.ElseScenesId,
+                                        DelayTime = 0,
+                                        MemberNumber = i + 1
+                                    };
+                                    memberDataList.Add(memberData);
+                                }
+                                else if (sceneTarget.Type == 2)
+                                {
+                                    var memberData = new AddSceneMemberData
+                                    {
+                                        Type = 2,
+                                        ScenesId = 0,
+                                        DelayTime = sceneTarget.DelayTime,
+                                        MemberNumber = i + 1
+                                    };
+                                    memberDataList.Add(memberData);
+                                }
+                            }
+
+                            var result = await HdlSceneLogic.Current.AddScene(curRoom, nameRow.NameText.Text, imgPath, memberDataList, IconPathType);
+                            if (result == 1)
+                            {
+                                AddAction?.Invoke();
+                                RemoveFromParent();
+                            }
+                            else if (result == 0)
+                            {
+                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.AddSceneFail));
+                            }
+                            else if (result == -1)
+                            {
+                                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
+                            }
+                        }
+                        catch (Exception ex)
+                        {
+                            System.Console.WriteLine($"鍒嗙被娣诲姞鍦烘櫙鍑洪敊{ex.Message}");
+                        }
+                        finally
+                        {
+                            CommonPage.Loading.Hide();
+                        }
+                    }
+                }
+
+            };
+            #endregion
+        }
+
+        #endregion
+
+        #region 缂栬緫璁惧____________________________________
+
+        /// <summary>
+        /// ShowSelectAction
+        /// </summary>
+        /// <param name="device"></param>
+        private void ShowSelectAction(CommonDevice device, SceneTargetDeviceUI sceneTarget)
+        {
+            var dialog = new FrameLayout()
+            {
+                BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
+            };
+            AddChidren(dialog);
+
+            dialog.MouseUpEventHandler += (sender, e) =>
+            {
+                dialog.RemoveFromParent();
+            };
+
+            if (device.Type == ZigBee.Device.DeviceType.OnOffOutput)
+            {
+                SelectOnoffOutput(dialog, device, sceneTarget);
+            }
+            else if (device.Type == ZigBee.Device.DeviceType.AirSwitch)
+            {
+                SelectOnoffOutput(dialog, device, sceneTarget);
+            }
+            else if (device.Type == ZigBee.Device.DeviceType.DimmableLight)
+            {
+                SelectDimmableLight(dialog, device, sceneTarget);
+            }
+            else if (device.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
+            {
+                SelectWindowCoveringDevice(dialog, device, sceneTarget);
+            }
+            else if (device.Type == ZigBee.Device.DeviceType.Thermostat)
+            {
+                SelectThermostat(dialog, device, sceneTarget);
+            }
+        }
+
+        /// <summary>
+        /// 鐏厜
+        /// </summary>
+        /// <param name="dialog"></param>
+        /// <param name="device"></param>
+        /// <param name="sceneTarget"></param>
+        private void SelectOnoffOutput(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
+        {
+            var selectFL = new FrameLayout
+            {
+                Y = Application.GetRealHeight(1391),
+                Height = Application.GetRealHeight(530),
+            };
+            dialog.AddChidren(selectFL);
+            //selectFL.Animate = Animate.DownToUp;
+
+            var titleBG = new FrameLayout
+            {
+                Height = Application.GetRealHeight(138 * 2),
+                Radius = (uint)Application.GetRealHeight(58),
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+            };
+            selectFL.AddChidren(titleBG);
+
+            var titleFL = new FrameLayout
+            {
+                Height = Application.GetRealHeight(138),
+            };
+            selectFL.AddChidren(titleFL);
+
+            var line = new Button
+            {
+                Y = titleFL.Height - 1,
+                Height = 1,
+                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
+            };
+            titleFL.AddChidren(line);
+
+            var cancleBtn = new Button
+            {
+                X = Application.GetRealWidth(80),
+                Width = Application.GetRealWidth(200),
+                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+                TextSize = 14,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextID = R.MyInternationalizationString.Cancel
+            };
+            titleFL.AddChidren(cancleBtn);
+
+            var deviceName = new Button
+            {
+                Width = Application.GetRealWidth(600),
+                Gravity = Gravity.CenterHorizontal,
+                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                TextSize = 16,
+                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
+            };
+            titleFL.AddChidren(deviceName);
+
+            var comfrimBtn = new Button
+            {
+                X = Application.GetRealWidth(800),
+                Width = Application.GetRealWidth(200),
+                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
+                TextSize = 14,
+                TextAlignment = TextAlignment.CenterRight,
+                TextID = R.MyInternationalizationString.Complete
+            };
+            titleFL.AddChidren(comfrimBtn);
+
+            var itemFL = new FrameLayout
+            {
+                Y = titleFL.Bottom,
+                Height = Application.GetRealHeight(392),
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+            };
+            selectFL.AddChidren(itemFL);
+
+            var open = new SelectSceneStatuRow(0, 60);
+            itemFL.AddChidren(open);
+            open.Init();
+            open.SetTitle(R.MyInternationalizationString.Open);
+            open.IsSelected = true;
+
+
+            var shut = new SelectSceneStatuRow(0, 60 + 127 + 30);
+            itemFL.AddChidren(shut);
+            shut.Init();
+            shut.hideLine(true);
+            shut.SetTitle(R.MyInternationalizationString.Shut);
+
+            open.ClickButton.MouseUpEventHandler += (sender, e) =>
+            {
+                open.IsSelected = true;
+                shut.IsSelected = false;
+            };
+
+            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
+            {
+                open.IsSelected = false;
+                shut.IsSelected = true;
+            };
+
+            cancleBtn.MouseUpEventHandler = (sender, e) =>
+            {
+                dialog.RemoveAll();
+                dialog.RemoveFromParent();
+            };
+
+            if (sceneTarget.TaskList.Count > 0)
+            {
+                if (sceneTarget.TaskList[0].Data1 == 1)
+                {
+                    open.IsSelected = true;
+                    shut.IsSelected = false;
+                }
+                else
+                {
+                    open.IsSelected = false;
+                    shut.IsSelected = true;
+                }
+            }
+
+            comfrimBtn.MouseUpEventHandler = (sender, e) =>
+            {
+                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
+                int taskType = 1;
+                int data1 = 0;
+                int data2 = 0;
+
+                if (open.IsSelected)
+                {
+                    //寮�
+                    data1 = 1;
+                    data2 = 0;
+                }
+                else
+                {
+                    //鍏�
+                    data1 = 0;
+                    data2 = 0;
+                }
+                var taskInfo = new ZigBee.Device.Scene.TaskListInfo
+                {
+                    TaskType = taskType,
+                    Data1 = data1,
+                    Data2 = data2
+                };
+                taskList.Add(taskInfo);
+
+                sceneTarget.TaskList = taskList;
+                sceneTarget.DeviceUI = device;
+                selectedAction?.Invoke(sceneTarget);
+                dialog.RemoveFromParent();
+            };
+        }
+        /// <summary>
+        /// 绐楀笜
+        /// </summary>
+        /// <param name="dialog"></param>
+        /// <param name="device"></param>
+        /// <param name="sceneTarget"></param>
+        private void SelectWindowCoveringDevice(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
+        {
+            var selectFL = new FrameLayout
+            {
+                Y = Application.GetRealHeight(1169),
+                Height = Application.GetRealHeight(752),
+            };
+            dialog.AddChidren(selectFL);
+            //selectFL.Animate = Animate.DownToUp;
+
+            var titleBG = new FrameLayout
+            {
+                Height = Application.GetRealHeight(138 * 2),
+                Radius = (uint)Application.GetRealHeight(58),
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+            };
+            selectFL.AddChidren(titleBG);
+
+            var titleFL = new FrameLayout
+            {
+                Height = Application.GetRealHeight(138),
+            };
+            selectFL.AddChidren(titleFL);
+
+            var line = new Button
+            {
+                Y = titleFL.Height - 1,
+                Height = 1,
+                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
+            };
+            titleFL.AddChidren(line);
+
+            var cancleBtn = new Button
+            {
+                X = Application.GetRealWidth(80),
+                Width = Application.GetRealWidth(200),
+                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+                TextSize = 14,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextID = R.MyInternationalizationString.Cancel
+            };
+            titleFL.AddChidren(cancleBtn);
+
+            var deviceName = new Button
+            {
+                Width = Application.GetRealWidth(600),
+                Gravity = Gravity.CenterHorizontal,
+                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                TextSize = 16,
+                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
+            };
+            titleFL.AddChidren(deviceName);
+
+            var comfrimBtn = new Button
+            {
+                X = Application.GetRealWidth(800),
+                Width = Application.GetRealWidth(200),
+                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
+                TextSize = 14,
+                TextAlignment = TextAlignment.CenterRight,
+                TextID = R.MyInternationalizationString.Complete
+            };
+            titleFL.AddChidren(comfrimBtn);
+
+            var itemFL = new FrameLayout
+            {
+                Y = titleFL.Bottom,
+                Height = Application.GetRealHeight(613),
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+            };
+            selectFL.AddChidren(itemFL);
+
+            var open = new SelectDeviceWithSeekBarRow(0, 60);
+            itemFL.AddChidren(open);
+            open.Init();
+            open.SetTitle(R.MyInternationalizationString.Open);
+            open.IsSelected = true;
+
+            var shut = new SelectSceneStatuRow(0, 60 + 348 + 30);
+            itemFL.AddChidren(shut);
+            shut.Init();
+            shut.hideLine(true);
+            shut.SetTitle(R.MyInternationalizationString.Shut);
+
+            open.ClickButton.MouseUpEventHandler += (sender, e) =>
+            {
+                open.IsSelected = true;
+                shut.IsSelected = false;
+            };
+
+            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
+            {
+                open.IsSelected = false;
+                shut.IsSelected = true;
+            };
+
+            cancleBtn.MouseUpEventHandler = (sender, e) =>
+            {
+                dialog.RemoveAll();
+                dialog.RemoveFromParent();
+            };
+
+            open.SeekBar.OnProgressChangedEvent += (sender, e) =>
+            {
+                open.IsSelected = true;
+                shut.IsSelected = false;
+                open.SetSeekBarTitle();
+            };
+
+            if (sceneTarget.TaskList.Count > 0)
+            {
+                if (sceneTarget.TaskList[0].Data1 == 1)
+                {
+                    open.IsSelected = false;
+                    shut.IsSelected = true;
+                }
+                else
+                {
+                    open.IsSelected = true;
+                    shut.IsSelected = false;
+                    open.SetSeekBarProgress(sceneTarget.TaskList[0].Data2);
+                }
+            }
+
+            comfrimBtn.MouseUpEventHandler = (sender, e) =>
+            {
+                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
+
+                int taskType = 6;
+                int data1 = 0;
+                int data2 = 0;
+
+                if (shut.IsSelected)
+                {
+                    //鍏�
+                    data1 = 1;
+                    data2 = 0;
+                }
+                else
+                {
+                    //鐧惧垎姣�
+                    data1 = 5;
+                    data2 = open.SeekBar.Progress;
+                }
+
+                var taskInfo = new ZigBee.Device.Scene.TaskListInfo
+                {
+                    TaskType = taskType,
+                    Data1 = data1,
+                    Data2 = data2
+                };
+                taskList.Add(taskInfo);
+
+                sceneTarget.TaskList = taskList;
+                sceneTarget.DeviceUI = device;
+                selectedAction?.Invoke(sceneTarget);
+                dialog.RemoveFromParent();
+            };
+        }
+        /// <summary>
+        /// 璋冨厜鐏�
+        /// </summary>
+        /// <param name="dialog"></param>
+        /// <param name="device"></param>
+        /// <param name="sceneTarget"></param>
+        private void SelectDimmableLight(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
+        {
+            var selectFL = new FrameLayout
+            {
+                Y = Application.GetRealHeight(1169),
+                Height = Application.GetRealHeight(752),
+            };
+            dialog.AddChidren(selectFL);
+            //selectFL.Animate = Animate.DownToUp;
+
+            var titleBG = new FrameLayout
+            {
+                Height = Application.GetRealHeight(138 * 2),
+                Radius = (uint)Application.GetRealHeight(58),
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+            };
+            selectFL.AddChidren(titleBG);
+
+            var titleFL = new FrameLayout
+            {
+                Height = Application.GetRealHeight(138),
+            };
+            selectFL.AddChidren(titleFL);
+
+            var line = new Button
+            {
+                Y = titleFL.Height - 1,
+                Height = 1,
+                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
+            };
+            titleFL.AddChidren(line);
+
+            var cancleBtn = new Button
+            {
+                X = Application.GetRealWidth(80),
+                Width = Application.GetRealWidth(200),
+                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+                TextSize = 14,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextID = R.MyInternationalizationString.Cancel
+            };
+            titleFL.AddChidren(cancleBtn);
+
+            var deviceName = new Button
+            {
+                Width = Application.GetRealWidth(600),
+                Gravity = Gravity.CenterHorizontal,
+                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                TextSize = 16,
+                TextAlignment = TextAlignment.CenterLeft,
+                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
+            };
+            titleFL.AddChidren(deviceName);
+
+            var comfrimBtn = new Button
+            {
+                X = Application.GetRealWidth(800),
+                Width = Application.GetRealWidth(200),
+                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
+                TextSize = 14,
+                TextAlignment = TextAlignment.CenterRight,
+                TextID = R.MyInternationalizationString.Complete
+            };
+            titleFL.AddChidren(comfrimBtn);
+
+            var itemFL = new FrameLayout
+            {
+                Y = titleFL.Bottom,
+                Height = Application.GetRealHeight(613),
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+            };
+            selectFL.AddChidren(itemFL);
+
+            var open = new SelectDeviceWithSeekBarRow(0, 60);
+            itemFL.AddChidren(open);
+            open.Init(254);
+            open.SetTitle(R.MyInternationalizationString.Open);
+            open.IsSelected = true;
+
+            var shut = new SelectSceneStatuRow(0, 60 + 348 + 30);
+            itemFL.AddChidren(shut);
+            shut.Init();
+            shut.hideLine(true);
+            shut.SetTitle(R.MyInternationalizationString.Shut);
+
+            open.ClickButton.MouseUpEventHandler += (sender, e) =>
+            {
+                open.IsSelected = true;
+                shut.IsSelected = false;
+            };
+
+            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
+            {
+                open.IsSelected = false;
+                shut.IsSelected = true;
+            };
+
+            cancleBtn.MouseUpEventHandler = (sender, e) =>
+            {
+                dialog.RemoveAll();
+                dialog.RemoveFromParent();
+            };
+
+            open.SeekBar.OnProgressChangedEvent += (sender, e) =>
+            {
+                open.IsSelected = true;
+                shut.IsSelected = false;
+                open.SetSeekBarTitle();
+            };
+
+            if (sceneTarget.TaskList.Count > 0)
+            {
+                if (sceneTarget.TaskList[0].Data1 == 0)
+                {
+                    open.IsSelected = false;
+                    shut.IsSelected = true;
+                }
+                else
+                {
+                    open.IsSelected = true;
+                    shut.IsSelected = false;
+                    open.SetSeekBarProgress(sceneTarget.TaskList[0].Data1);
+                }
+            }
+
+            comfrimBtn.MouseUpEventHandler = (sender, e) =>
+            {
+                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
+
+                int taskType = 3;
+                int data1 = 0;
+                int data2 = 0;
+
+                if (shut.IsSelected)
+                {
+                    //鍏�
+                    data1 = 0;
+                    data2 = 0;
+                }
+                else
+                {
+                    //鐧惧垎姣�
+                    data1 = open.SeekBar.Progress;
+                    data2 = 0;
+                }
+
+                var taskInfo = new ZigBee.Device.Scene.TaskListInfo
+                {
+                    TaskType = taskType,
+                    Data1 = data1,
+                    Data2 = data2
+                };
+                taskList.Add(taskInfo);
+
+                sceneTarget.TaskList = taskList;
+                sceneTarget.DeviceUI = device;
+                selectedAction?.Invoke(sceneTarget);
+                dialog.RemoveFromParent();
+            };
+        }
+        /// <summary>
+        /// 绌鸿皟
+        /// </summary>
+        /// <param name="dialog"></param>
+        /// <param name="device"></param>
+        /// <param name="sceneTarget"></param>
+        private void SelectThermostat(FrameLayout dialog, CommonDevice device, SceneTargetDeviceUI sceneTarget)
+        {
+            /// 娓╁害
+            int tempId = 0;
+            /// 妯″紡
+            int modelId = 0;
+            /// 椋庨��
+            int fanid = 0;
+
+            var selectFL = new FrameLayout
+            {
+                Y = Application.GetRealHeight(815),
+                Height = Application.GetRealHeight(1106),
+            };
+            dialog.AddChidren(selectFL);
+            //selectFL.Animate = Animate.DownToUp;
+
+            var titleBG = new FrameLayout
+            {
+                Height = Application.GetRealHeight(138 * 2),
+                Radius = (uint)Application.GetRealHeight(58),
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+            };
+            selectFL.AddChidren(titleBG);
+
+            var titleFL = new FrameLayout
+            {
+                Height = Application.GetRealHeight(138),
+            };
+            selectFL.AddChidren(titleFL);
+
+            var line = new Button
+            {
+                Y = titleFL.Height - 1,
+                Height = 1,
+                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
+            };
+            titleFL.AddChidren(line);
+
+            var cancleBtn = new Button
+            {
+                X = Application.GetRealWidth(80),
+                Width = Application.GetRealWidth(200),
+                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+                TextSize = 14,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextID = R.MyInternationalizationString.Cancel
+            };
+            titleFL.AddChidren(cancleBtn);
+
+            var deviceName = new Button
+            {
+                Width = Application.GetRealWidth(600),
+                Gravity = Gravity.CenterHorizontal,
+                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                TextSize = 16,
+                TextAlignment = TextAlignment.CenterLeft,
+                Text = Common.LocalDevice.Current.GetDeviceEpointName(device)
+            };
+            titleFL.AddChidren(deviceName);
+
+            var comfrimBtn = new Button
+            {
+                X = Application.GetRealWidth(800),
+                Width = Application.GetRealWidth(200),
+                TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
+                TextSize = 14,
+                TextAlignment = TextAlignment.CenterRight,
+                TextID = R.MyInternationalizationString.Complete
+            };
+            titleFL.AddChidren(comfrimBtn);
+
+            var itemFL = new FrameLayout
+            {
+                Y = titleFL.Bottom,
+                Height = Application.GetRealHeight(968),
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+            };
+            selectFL.AddChidren(itemFL);
+
+            var open = new SelectDeviceWithPickViewRow(0, 60);
+            itemFL.AddChidren(open);
+            open.Init();
+            open.SetTitle(R.MyInternationalizationString.Open);
+            open.IsSelected = true;
+
+            open.pickerView.OnSelectChangeEvent = (l1, l2, l3) =>
+            {
+                tempId = l1;
+                modelId = l2;
+                fanid = l3;
+            };
+
+            var shut = new SelectSceneStatuRow(0, 60 + 703 + 30);
+            itemFL.AddChidren(shut);
+            shut.Init();
+            shut.hideLine(true);
+            shut.SetTitle(R.MyInternationalizationString.Shut);
+
+            open.ClickButton.MouseUpEventHandler += (sender, e) =>
+            {
+                open.IsSelected = true;
+                shut.IsSelected = false;
+            };
+
+            shut.ClickButton.MouseUpEventHandler += (sender, e) =>
+            {
+                open.IsSelected = false;
+                shut.IsSelected = true;
+            };
+
+            cancleBtn.MouseUpEventHandler = (sender, e) =>
+            {
+                dialog.RemoveAll();
+                dialog.RemoveFromParent();
+            };
+
+            if (sceneTarget.TaskList.Count > 0)
+            {
+                if (sceneTarget.TaskList.Count == 1)
+                {
+                    open.IsSelected = false;
+                    shut.IsSelected = true;
+                }
+                else
+                {
+                    open.IsSelected = true;
+                    shut.IsSelected = false;
+
+                    for (int i = 0; i < sceneTarget.TaskList.Count; i++)
+                    {
+                        var tasklist = sceneTarget.TaskList[i];
+                        if (tasklist.Data1 == 6)
+                        {
+                            fanid = open.fanList.IndexOf(tasklist.Data2);
+                        }
+                        if (tasklist.Data1 == 3)
+                        {
+                            modelId = open.modeList.IndexOf(tasklist.Data2);
+                        }
+                        if (tasklist.Data1 == 4 || tasklist.Data1 == 5)
+                        {
+                            tempId = open.temperatureList.IndexOf(tasklist.Data2 / 100);
+                        }
+                    }
+                    open.pickerView.setCurrentItems(tempId, modelId, fanid);
+                }
+            }
+
+            comfrimBtn.MouseUpEventHandler = (sender, e) =>
+            {
+
+                var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
+
+                int taskType = 5;
+                int data1 = 0;
+                int data2 = 0;
+
+                if (shut.IsSelected)
+                {
+                    //鍏�
+                    data1 = 3;
+                    data2 = 0;
+                    var taskInfo = new ZigBee.Device.Scene.TaskListInfo
+                    {
+                        TaskType = taskType,
+                        Data1 = data1,
+                        Data2 = data2
+                    };
+                    taskList.Add(taskInfo);
+                }
+                else
+                {
+                    //fan
+                    var taskInfo = new ZigBee.Device.Scene.TaskListInfo
+                    {
+                        TaskType = taskType,
+                        Data1 = 6,
+                        Data2 = open.fanList[fanid]
+                    };
+                    taskList.Add(taskInfo);
+
+                    //mode
+                    var taskInfo2 = new ZigBee.Device.Scene.TaskListInfo
+                    {
+                        TaskType = taskType,
+                        Data1 = 3,
+                        Data2 = open.modeList[modelId]
+                    };
+                    taskList.Add(taskInfo2);
+
+                    //tem
+                    if (open.modeList[modelId] == 4)
+                    {
+                        //heat
+                        var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo
+                        {
+                            TaskType = taskType,
+                            Data1 = 4,
+                            Data2 = open.temperatureList[tempId] * 100
+                        };
+                        taskList.Add(taskInfo3);
+
+                    }
+                    else
+                    {
+                        //heat
+                        var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo
+                        {
+                            TaskType = taskType,
+                            Data1 = 5,
+                            Data2 = open.temperatureList[tempId] * 100
+                        };
+                        taskList.Add(taskInfo3);
+                    }
+                }
+
+                sceneTarget.TaskList = taskList;
+                sceneTarget.DeviceUI = device;
+                selectedAction?.Invoke(sceneTarget);
+                dialog.RemoveFromParent();
+            };
+        }
+
+        #endregion
+
+    }
+}
\ No newline at end of file

--
Gitblit v1.8.0