mac
2024-07-25 f9181a9c8125136f597add7c30cb2ff508d54ba7
HDL_ON/UI/UI2/FuntionControlView/HisenseTV /HisenseTvPage.cs
@@ -32,12 +32,13 @@
        /// 上一级界面的收藏控件
        /// </summary>
        private Button btnCollectionIcon;
        /// <summary>
        /// 头部布局
        /// </summary>
        private TopView topView;
        BaseFramLayout baseCloseFFL;
        /// <summary>
        ///中部布局
        /// </summary>
        VerticalScrolViewLayout vv;
        /// <summary>
        /// 当前设备名称
@@ -52,10 +53,11 @@
        /// </summary>
        private Button btnOpenCollectIcon;
        CustomFrameLayout shouyeFL;
        CustomFrameLayout kaiguanFL;
        CustomFrameLayout caidanFL;
        CustomFrameLayout kaijiFL;
        CustomFrameLayout guanFL;
        Button btn_jia;
        Button btn_jian;
        CustomButton caidanBtn;
        CustomButton bofangBtn;
        CustomButton zantingBtn;
        CustomButton kuaijinBtn;
@@ -66,12 +68,6 @@
        CustomButton fanhuiBtn;
        MenuFramLayout muenFrameLayout;
        SourceFrameLayout sourceFrameLayout;
        Button btnCloseCollectIcon;
        Button btnCloseCurrDeviceName;
        Button btnCloseCurrDeviceRoom;
        Button clickBtn;
        /// <summary>
        /// 表示来自那个界面
@@ -106,8 +102,6 @@
            //初始化UI
            this.InitTopUI();
            this.InitOpenUI();
            this.InitCloseUI();
            this.CurrentAssignPage();
            //初始化事件
            this.EventListener();
            //读取数据
@@ -143,9 +137,6 @@
                        //
                        this.btnOpenCurrDeviceName.Text = this.device.name;
                        this.btnOpenCurrDeviceRoom.Text = this.device.GetRoomListName();
                        //
                        this.btnCloseCurrDeviceName.Text = this.device.name;
                        this.btnCloseCurrDeviceRoom.Text = this.device.GetRoomListName();
                        this.CalculatedPosition();//重新计算宽度
                    });
@@ -166,7 +157,6 @@
            {
                btnOpenCollectIcon.IsSelected = this.device.collect = !btnOpenCollectIcon.IsSelected;
                this.device.CollectFunction();
                btnCloseCollectIcon.IsSelected = btnOpenCollectIcon.IsSelected;
                this.btnCollectionIcon.IsSelected = btnOpenCollectIcon.IsSelected;
            };
@@ -175,42 +165,37 @@
            {
                ControlCommand(HisenseTVFunctionalAttributeConstant.home_page, "");
            });
            //关机
            kaiguanFL.SetClickListener((fl, btnImage, btnText) =>
            //开机
            kaijiFL.SetClickListener((fl, btnImage, btnText) =>
            {
                ControlCommand(HisenseTVFunctionalAttributeConstant.on_off, "off", (isBool) =>
                {
                    if (isBool)
                    {
                        CommonMethod.Current.MainThread(() =>
                        {
                            vv.Visible = false;
                            baseCloseFFL.Visible = true;
                        });
                    }
                    else
                    {
                        //提示:关机失败;
                    }
                });
                ControlCommand(HisenseTVFunctionalAttributeConstant.wol, "on");
            });
            //菜单
            caidanFL.SetClickListener((fl, btnImage, btnText) =>
            //关机
            guanFL.SetClickListener((fl, btnImage, btnText) =>
            {
                ControlCommand(HisenseTVFunctionalAttributeConstant.operation, "11");
                ControlCommand(HisenseTVFunctionalAttributeConstant.on_off, "off");
            });
            //音量+
            btn_jia.MouseDownEventHandler += (sender, e) =>
            btn_jia.MouseUpEventHandler += (sender, e) =>
            {
                ControlCommand(HisenseTVFunctionalAttributeConstant.volume_add, "");
                this.SetButtonIsSelected(btn_jia);
            };
            //音量-
            btn_jian.MouseDownEventHandler += (sender, e) =>
            btn_jian.MouseUpEventHandler += (sender, e) =>
            {
                ControlCommand(HisenseTVFunctionalAttributeConstant.volume_subtract, "");
                this.SetButtonIsSelected(btn_jian);
            };
            //菜单
            caidanBtn.SetClickListener((btn) =>
             {
                 ControlCommand(HisenseTVFunctionalAttributeConstant.operation, "11");
             });
            //播放
            bofangBtn.SetClickListener((btn) =>
            {
@@ -288,40 +273,12 @@
            });
            //信号源
            sourceFrameLayout.selectAction += (text) =>
            sourceFrameLayout.selectAction += (key) =>
            {
                string value = text.Replace(" ", "_");
                var p = new UI2.Intelligence.Automation.PublicInterface();
                var dic = p.GetHisenseSignalSourceDic();
                string value = p.GetValue(dic, key);
                ControlCommand(HisenseTVFunctionalAttributeConstant.signal, value);
            };
            //收藏(关机)
            this.btnCloseCollectIcon.MouseUpEventHandler += (sender, e) =>
            {
                btnCloseCollectIcon.IsSelected = this.device.collect = !btnCloseCollectIcon.IsSelected;
                this.device.CollectFunction();
                btnOpenCollectIcon.IsSelected = btnCloseCollectIcon.IsSelected;
                this.btnCollectionIcon.IsSelected = btnCloseCollectIcon.IsSelected;
            };
            //开机
            clickBtn.MouseDownEventHandler += (sen, e) =>
            {
                ControlCommand(HisenseTVFunctionalAttributeConstant.on_off, "on", (isBool) =>
                {
                    if (isBool)
                    {
                        CommonMethod.Current.MainThread(() =>
                        {
                            vv.Visible = true;
                            baseCloseFFL.Visible = false;
                        });
                    }
                    else
                    {
                        //提示:开机失败;
                    }
                });
            };
        }
@@ -335,6 +292,26 @@
        {
            try
            {
                if (this.device == null)
                {
                    //设备不在线控制失败
                    Application.RunOnMainThread(() =>
                    {
                        CommonMethod.Current.ShowTip(Language.StringByID(StringId.shebeibuzaixian), 3);
                    });
                    return;
                }
                if (!this.device.online && key != HisenseTVFunctionalAttributeConstant.wol)
                {
                    //设备不在线控制失败
                    Application.RunOnMainThread(() =>
                    {
                        CommonMethod.Current.ShowTip(Language.StringByID(StringId.shebeibuzaixian), 3);
                    });
                    return;
                }
                Dictionary<string, string> dic = new Dictionary<string, string>();
                dic.Add(key, value);
                Send.Current.SendControlCommand(this.device, dic, action);
@@ -346,14 +323,27 @@
        /// </summary>
        private void ReadData()
        {
            if (this.device == null)
            {
                return;
            }
            CommonMethod.Current.Loading.Start();
            CommonMethod.Current.SunThread(() =>
            {
                try
                {
                    CommonMethod.Current.MainThread(() =>
                    var isRefreshDeviceStatus = Send.Current.RefreshDeviceStatus(new List<string> { this.device.deviceId });
                    if (isRefreshDeviceStatus)
                    {
                    });
                        var fun = Send.Current.GetDeviceInfo(this.device.deviceId);
                        if (fun != null)
                        {
                            //更新真实在线状态
                            this.device.online = fun.online;
                        }
                    }
                }
                catch { }
                finally
@@ -385,7 +375,7 @@
            {
                Y = Application.GetRealHeight(24),
                X = Application.GetRealWidth(24),
                Height = Application.GetRealHeight(648),
                Height = Application.GetRealHeight(648-60),
                Width = Application.GetRealWidth(327),
                BackgroundImagePath = "HisenseTv/onbj.png",
            };
@@ -432,7 +422,7 @@
                TextAlignment = TextAlignment.CenterLeft,
            };
            backgroundOpenFl.AddChidren(btnOpenCurrDeviceRoom);
            int yHeight = btnOpenCurrDeviceRoom.Bottom + Application.GetRealHeight(16);
            shouyeFL = new CustomFrameLayout();
            backgroundOpenFl.AddChidren(shouyeFL);
@@ -441,49 +431,54 @@
            shouyeFL.AddImageView();
            shouyeFL.AddTextButtonView();
            shouyeFL.GetImageButton().UnSelectedImagePath = "HisenseTv/shouye.png";
            shouyeFL.GetImageButton().SelectedImagePath = "HisenseTv/shouyeSelected.png";
            shouyeFL.GetTextButton().TextID = StringId.shouye;
            kaiguanFL = new CustomFrameLayout();
            backgroundOpenFl.AddChidren(kaiguanFL);
            kaiguanFL.X = shouyeFL.Right + Application.GetRealWidth(37);
            kaiguanFL.Y = yHeight;
            kaiguanFL.AddImageView();
            kaiguanFL.AddTextButtonView();
            kaiguanFL.GetImageButton().UnSelectedImagePath = "HisenseTv/kaiguan.png";
            kaiguanFL.GetTextButton().TextID = StringId.guanji;
            kaijiFL = new CustomFrameLayout();
            backgroundOpenFl.AddChidren(kaijiFL);
            kaijiFL.X = shouyeFL.Right + Application.GetRealWidth(37);
            kaijiFL.Y = yHeight;
            kaijiFL.AddImageView();
            kaijiFL.AddTextButtonView();
            kaijiFL.GetImageButton().UnSelectedImagePath = "HisenseTv/kai.png";
            kaijiFL.GetImageButton().SelectedImagePath = "HisenseTv/kaiguanSelected.png";
            kaijiFL.GetTextButton().TextID = StringId.kaiji;
            caidanFL = new CustomFrameLayout();
            backgroundOpenFl.AddChidren(caidanFL);
            caidanFL.X = kaiguanFL.Right + Application.GetRealWidth(37);
            caidanFL.Y = yHeight;
            caidanFL.AddImageView();
            caidanFL.AddTextButtonView();
            caidanFL.GetImageButton().UnSelectedImagePath = "HisenseTv/caidan.png";
            caidanFL.GetTextButton().TextID = StringId.caidan;
            guanFL = new CustomFrameLayout();
            backgroundOpenFl.AddChidren(guanFL);
            guanFL.X = kaijiFL.Right + Application.GetRealWidth(37);
            guanFL.Y = yHeight;
            guanFL.AddImageView();
            guanFL.AddTextButtonView();
            guanFL.GetImageButton().UnSelectedImagePath = "HisenseTv/guan.png";
            guanFL.GetImageButton().SelectedImagePath = "HisenseTv/kaiguanSelected.png";
            //guanFL.GetImageButton().UnSelectedImagePath = "HisenseTv/caidan.png";
            guanFL.GetTextButton().TextID = StringId.guanji;
            var yinliangFL = new FrameLayout();
            backgroundOpenFl.AddChidren(yinliangFL);
            yinliangFL.Height = Application.GetRealHeight(200);
            yinliangFL.Height = Application.GetRealHeight(146-16);
            yinliangFL.Width = Application.GetRealWidth(68);
            yinliangFL.Y = shouyeFL.Bottom + Application.GetRealHeight(24);
            yinliangFL.Y = Application.GetRealHeight(260-8-20);
            yinliangFL.X = shouyeFL.X;
            yinliangFL.BackgroundColor = 0xffF2F3F7;
            yinliangFL.Radius = (uint)Application.GetRealHeight(34);
            yinliangFL.BackgroundColor = 0xFFF2F3F7;
            yinliangFL.Radius = (uint)Application.GetRealWidth(34);
            btn_jia = new Button
            {
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "HisenseTv/yingliangjia.png",
                Y = Application.GetRealHeight(20),
                SelectedImagePath = "HisenseTv/yingliangjiaSelected.png",
                Y = Application.GetRealHeight(16),
                Gravity = Gravity.CenterHorizontal,
            };
            yinliangFL.AddChidren(btn_jia);
            Button btnText = new Button
            {
                Y = Application.GetRealHeight(90),
                Y = Application.GetRealHeight(63-8),
                Height = Application.GetRealHeight(20),
                //Text = "音量",
                TextID = StringId.yinliang,
@@ -495,49 +490,47 @@
            yinliangFL.AddChidren(btnText);
            btn_jian = new Button
            {
                Y = Application.GetRealHeight(148),
                Y = Application.GetRealHeight(98-8),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "HisenseTv/yingliangjian.png",
                SelectedImagePath = "HisenseTv/yingliangjianSelected.png",
                Gravity = Gravity.CenterHorizontal,
            };
            yinliangFL.AddChidren(btn_jian);
            btn_jia.MouseUpEventHandler += (sender, e) =>
            {
            };
            btn_jian.MouseUpEventHandler += (sender, e) =>
            {
            };
            int bottomValue= 4;
            caidanBtn = new CustomButton();
            caidanBtn.TextID = StringId.caidan;
            caidanBtn.Y = shouyeFL.Bottom + Application.GetRealHeight(bottomValue);
            caidanBtn.X = shouyeFL.X;
            backgroundOpenFl.AddChidren(caidanBtn);
            bofangBtn = new CustomButton();
            bofangBtn.TextID = StringId.bofang;
            bofangBtn.Y = shouyeFL.Bottom + Application.GetRealHeight(24);
            bofangBtn.Y = shouyeFL.Bottom + Application.GetRealHeight(bottomValue);
            bofangBtn.X = yinliangFL.Right + Application.GetRealWidth(37);
            backgroundOpenFl.AddChidren(bofangBtn);
            zantingBtn = new CustomButton();
            zantingBtn.TextID = StringId.zanting;
            zantingBtn.Y = shouyeFL.Bottom + Application.GetRealHeight(24);
            zantingBtn.Y = shouyeFL.Bottom + Application.GetRealHeight(bottomValue);
            zantingBtn.X = bofangBtn.Right + Application.GetRealWidth(37);
            backgroundOpenFl.AddChidren(zantingBtn);
            int bottomValue1 = 8;
            kuaijinBtn = new CustomButton();
            kuaijinBtn.TextID = StringId.kuaijin;
            kuaijinBtn.Y = bofangBtn.Bottom + Application.GetRealHeight(16);
            kuaijinBtn.Y = bofangBtn.Bottom + Application.GetRealHeight(bottomValue1);
            kuaijinBtn.X = yinliangFL.Right + Application.GetRealWidth(37);
            backgroundOpenFl.AddChidren(kuaijinBtn);
            kauituiBtn = new CustomButton();
            kauituiBtn.TextID = StringId.kuaitui;
            kauituiBtn.Y = bofangBtn.Bottom + Application.GetRealHeight(16);
            kauituiBtn.Y = bofangBtn.Bottom + Application.GetRealHeight(bottomValue1);
            kauituiBtn.X = kuaijinBtn.Right + Application.GetRealWidth(37);
            backgroundOpenFl.AddChidren(kauituiBtn);
@@ -546,14 +539,14 @@
            jingyinBtn = new CustomButton();
            jingyinBtn.TextID = StringId.jingyin;
            jingyinBtn.Y = kuaijinBtn.Bottom + Application.GetRealHeight(16);
            jingyinBtn.Y = kuaijinBtn.Bottom + Application.GetRealHeight(bottomValue1);
            jingyinBtn.X = yinliangFL.Right + Application.GetRealWidth(37);
            backgroundOpenFl.AddChidren(jingyinBtn);
            shezhiBtn = new CustomButton();
            shezhiBtn.TextID = StringId.shezhi;
            shezhiBtn.Y = kuaijinBtn.Bottom + Application.GetRealHeight(16);
            shezhiBtn.Y = kuaijinBtn.Bottom + Application.GetRealHeight(bottomValue1);
            shezhiBtn.X = jingyinBtn.Right + Application.GetRealWidth(37);
            backgroundOpenFl.AddChidren(shezhiBtn);
@@ -561,28 +554,28 @@
            jiechujingyinBtn = new CustomButton();
            jiechujingyinBtn.TextID = StringId.jiechujingyin;
            jiechujingyinBtn.Y = jingyinBtn.Bottom + Application.GetRealHeight(16);
            jiechujingyinBtn.Y = jingyinBtn.Bottom + Application.GetRealHeight(bottomValue1);
            jiechujingyinBtn.X = yinliangFL.Right + Application.GetRealWidth(37);
            backgroundOpenFl.AddChidren(jiechujingyinBtn);
            fanhuiBtn = new CustomButton();
            fanhuiBtn.TextID = StringId.fanhui;
            fanhuiBtn.Y = jingyinBtn.Bottom + Application.GetRealHeight(16);
            fanhuiBtn.Y = jingyinBtn.Bottom + Application.GetRealHeight(bottomValue1);
            fanhuiBtn.X = jiechujingyinBtn.Right + Application.GetRealWidth(37);
            backgroundOpenFl.AddChidren(fanhuiBtn);
            TypeFrameLayout typeFrameLayout = new TypeFrameLayout();
            typeFrameLayout.middLayout.Y = yinliangFL.Bottom + Application.GetRealHeight(32);
            typeFrameLayout.middLayout.Y = yinliangFL.Bottom + Application.GetRealHeight(16);
            typeFrameLayout.AddView(backgroundOpenFl);
            muenFrameLayout = new MenuFramLayout();
            muenFrameLayout.Y = Application.GetRealHeight(482);
            muenFrameLayout.Y = Application.GetRealHeight(482-60);
            muenFrameLayout.AddView(backgroundOpenFl);
            sourceFrameLayout = new SourceFrameLayout();
            sourceFrameLayout.Y = Application.GetRealHeight(482);
            sourceFrameLayout.Y = Application.GetRealHeight(482-60);
            backgroundOpenFl.AddChidren(sourceFrameLayout);
            sourceFrameLayout.LoadSourcePage();
@@ -610,138 +603,7 @@
            #endregion
        }
        /// <summary>
        /// 初始化【关机】界面
        /// </summary>
        private void InitCloseUI()
        {
            #region   ---界面布局---
            baseCloseFFL = new BaseFramLayout
            {
                Y = topView.fLayout.Bottom,
                Height = Application.GetRealHeight(H_W.H - H_W.T_Height),
            };
            this.AddChidren(baseCloseFFL);
            var backgroundCloseFl = new FrameLayout
            {
                Y = Application.GetRealHeight(24),
                X = Application.GetRealWidth(24),
                Height = Application.GetRealHeight(526),
                Width = Application.GetRealWidth(327),
                BackgroundImagePath = "HisenseTv/offbj.png",
            };
            baseCloseFFL.AddChidren(backgroundCloseFl);
            baseCloseFFL.AdjustRealHeight(16);
            btnCloseCollectIcon = new Button
            {
                X = Application.GetRealWidth(273),
                Y = Application.GetRealHeight(14),
                Width = Application.GetRealWidth(40),
                Height = Application.GetRealWidth(40),
                UnSelectedImagePath = "MusicIcon/collect.png",
                SelectedImagePath = "MusicIcon/collectSelected.png",
                IsSelected = this.device.collect,
            };
            backgroundCloseFl.AddChidren(btnCloseCollectIcon);
            btnCloseCurrDeviceName = new Button
            {
                TextSize = TextSize.Text24,
                TextColor = MusicColor.Text18Color,
                Width = Application.GetRealWidth(160),
                Height = Application.GetRealHeight(33),
                Y = Application.GetRealHeight(16),
                X = Application.GetRealWidth(16),
                Text = this.device.name,
                TextAlignment = TextAlignment.CenterLeft,
                IsBold = true
            };
            backgroundCloseFl.AddChidren(btnCloseCurrDeviceName);
            btnCloseCurrDeviceRoom = new Button
            {
                TextSize = TextSize.Text12,
                TextColor = MusicColor.MusicNoTxetColor,
                Width = Application.GetRealWidth(160),
                Height = Application.GetRealHeight(17),
                Y = btnCloseCurrDeviceName.Bottom + Application.GetRealHeight(4),
                X = Application.GetRealWidth(16),
                Text = this.device.GetRoomListName(),
                TextAlignment = TextAlignment.CenterLeft,
            };
            backgroundCloseFl.AddChidren(btnCloseCurrDeviceRoom);
            var btnOffTvBj = new Button
            {
                Y = Application.GetRealHeight(108),
                Height = Application.GetRealWidth(198),
                Width = Application.GetRealWidth(198),
                UnSelectedImagePath = "HisenseTv/offtvbj.png",
                Gravity = Gravity.CenterHorizontal,
            };
            backgroundCloseFl.AddChidren(btnOffTvBj);
            var btnText = new Button
            {
                Y = btnOffTvBj.Bottom + Application.GetRealHeight(20),
                Width = Application.GetRealWidth(200),
                Height = Application.GetRealHeight(22),
                TextSize = TextSize.Text16,
                TextColor = MusicColor.TextColor,
                //Text = "已关机",
                TextID = StringId.yiguanji,
                TextAlignment = TextAlignment.Center,
                Gravity = Gravity.CenterHorizontal,
                Padding = new Padding(0, 16, 0, 16),
            };
            backgroundCloseFl.AddChidren(btnText);
            var offFl = new FrameLayout
            {
                Y = btnText.Bottom + Application.GetRealHeight(91),
                Width = Application.GetRealHeight(32),
                Height = Application.GetRealWidth(32 + 20),
                Gravity = Gravity.CenterHorizontal,
            };
            backgroundCloseFl.AddChidren(offFl);
            var btnOffIcon = new Button
            {
                Height = Application.GetRealWidth(32),
                Width = Application.GetRealWidth(32),
                UnSelectedImagePath = "HisenseTv/on.png",
                Gravity = Gravity.CenterHorizontal,
            };
            offFl.AddChidren(btnOffIcon);
            var btnOffText = new Button
            {
                Y = btnOffIcon.Bottom + Application.GetRealHeight(4),
                Height = Application.GetRealHeight(16),
                TextSize = TextSize.Text12,
                TextColor = MusicColor.TextCancelColor,
                TextID = StringId.kaiji,
                TextAlignment = TextAlignment.Center,
                Gravity = Gravity.CenterHorizontal,
                Padding = new Padding(0, 2, 0, 2),
            };
            offFl.AddChidren(btnOffText);
            clickBtn = new Button
            {
                Width = Application.GetRealHeight(32),
                Height = Application.GetRealWidth(32 + 20),
            };
            offFl.AddChidren(clickBtn);
            #endregion
        }
        /// <summary>
        /// 初始化头部
        /// </summary>
@@ -753,35 +615,7 @@
            this.topView.topNameBtn.TextID = StringId.dianshi;
            this.AddChidren(topView.TopFLayoutView());
        }
        /// <summary>
        /// 根据设备开关状态显示指定界面
        /// (进来的时候用到)
        /// </summary>
        /// <returns></returns>
        private void CurrentAssignPage()
        {
            CommonMethod.Current.MainThread(() =>
            {
                if (this.device == null)
                {
                    vv.Visible = false;
                    baseCloseFFL.Visible = true;
                    return;
                }
                if (this.device.GetAttrState("on_off") == "on" || this.device.GetAttrState("on_off") == "1")
                {
                    vv.Visible = true;
                    baseCloseFFL.Visible = false;
                }
                else
                {
                    vv.Visible = false;
                    baseCloseFFL.Visible = true;
                }
            });
        }
        /// <summary>
        /// 重新计算宽度(设备名称,房间控件)
@@ -803,23 +637,6 @@
                //重新计算宽度
                this.btnOpenCurrDeviceRoom.Width = this.btnOpenCollectIcon.X + Application.GetRealWidth(-20 - 10);
            }
            //关机状态
            this.btnCloseCurrDeviceName.Width = this.btnCloseCurrDeviceName.GetTextWidth();
            this.btnCloseCurrDeviceName.Width += 10;
            if (this.btnCloseCurrDeviceName.GetTextWidth() > this.btnCloseCollectIcon.X)
            {
                //重新计算宽度
                this.btnCloseCurrDeviceName.Width = this.btnCloseCollectIcon.X + Application.GetRealWidth(-10);
            }
            this.btnCloseCurrDeviceRoom.Width = this.btnCloseCurrDeviceRoom.GetTextWidth();
            this.btnCloseCurrDeviceRoom.Width += 10;
            if (this.btnCloseCurrDeviceRoom.GetTextWidth() > this.btnCloseCollectIcon.X)
            {
                //重新计算宽度
                this.btnCloseCurrDeviceRoom.Width = this.btnCloseCollectIcon.X + Application.GetRealWidth(-20 - 10);
            }
            //this.cellFrame.X = this.btnCurrDeviceRoom.Right + Application.GetRealWidth(20);
        }
@@ -830,7 +647,7 @@
    /// <summary>
    /// 自定义(首页,关机,菜单)容器
    /// </summary>
    class CustomFrameLayout : FrameLayout
    class CustomFrameLayout : BaseFramLayout
    {
        public const int widthFrameLayout = 68;
        public const int heightFrameLayout = 68 + 8 + 20;
@@ -856,6 +673,7 @@
            TextID = StringId.dangqianmenweiguan,
            TextSize = TextSize.Text14,
            TextColor = MusicColor.TextColor,
            SelectedTextColor = MusicColor.MusicTxet14SelectedColor,
            TextAlignment = TextAlignment.Center,
            Gravity = Gravity.CenterHorizontal,
            Name = "btnText",
@@ -887,19 +705,11 @@
        /// <param name="button2">注意:在SetClickListener()前面调用AddImageView()才有效</param>
        public void SetClickListener(Action<FrameLayout, Button, Button> action)
        {
            EventHandler<MouseEventArgs> DownClick = (sender, e) =>
            {
                //this.BackgroundColor = 0xFFF2F3F7;
                action?.Invoke(this, btnImage, btnText);
            };
            this.MouseDownEventHandler += DownClick;
            btnImage.MouseDownEventHandler += DownClick;
            btnText.MouseDownEventHandler += DownClick;
            EventHandler<MouseEventArgs> UpClick = (sender, e) =>
             {
                 //this.BackgroundColor = 0x00000000;
                 action?.Invoke(this, btnImage, btnText);
                 SetButtonIsSelected(btnImage);
             };
            this.MouseUpEventHandler += UpClick;
            btnImage.MouseUpEventHandler += UpClick;
@@ -921,11 +731,15 @@
            this.Height = Application.GetRealHeight(38);
            this.TextSize = 14;
            this.TextColor = MusicColor.TextColor;
            this.SelectedTextColor = MusicColor.MusicTxet14SelectedColor;
            this.TextAlignment = TextAlignment.Center;
            this.IsMoreLines = true;
            this.BackgroundColor = 0xffECEDEE;
            this.Radius = (uint)Application.GetRealHeight(30);
            this.BackgroundColor = 0xFFF2F3F7;
            this.SelectedBackgroundColor = 0xffECEDEE;
            this.Radius = (uint)Application.GetRealHeight(19);
            this.Padding = new Padding(0, 0, 0, 0);
        }
        /// <summary>
        /// 事件监听方法
@@ -933,17 +747,12 @@
        /// <param name="action">回调(第一个是父类对象</param>
        public void SetClickListener(Action<Button> action)
        {
            EventHandler<MouseEventArgs> DownClick = (sender, e) =>
            {
                this.BackgroundColor = 0xFFF2F3F7;
                action?.Invoke(this);
            };
            this.MouseDownEventHandler += DownClick;
            EventHandler<MouseEventArgs> UpClick = (sender, e) =>
            {
                this.BackgroundColor = 0xffECEDEE;
                action?.Invoke(this);
                new BaseFramLayout().SetButtonIsSelected(this);
            };
            this.MouseUpEventHandler += UpClick;
@@ -973,13 +782,14 @@
        Button leftBtnTitle = new Button
        {
        {
            Height = Application.GetRealHeight(23),
            TextAlignment = TextAlignment.CenterLeft,
            TextColor = MusicColor.TextColor,
            SelectedTextColor = MusicColor.MusicTxet14SelectedColor,
            TextSize = TextSize.Text16,
            TextID = StringId.kongzhi,
            Padding = new Padding(0, 0, 0, 0),
            IsBold = true,
        };
@@ -1013,7 +823,8 @@
            TextColor = MusicColor.TextColor,
            SelectedTextColor = MusicColor.MusicTxet14SelectedColor,
            TextSize = TextSize.Text16,
            Text = "信号源",
            TextID = StringId.xinhaoyuan,
            Padding = new Padding(0, 0, 0, 0),
            IsBold = true,
        };
@@ -1057,7 +868,7 @@
            rightLayout.AddChidren(clickRightLayout);
            leftBtnTitle.Width = leftLayout.Width;
            leftBtnLine.Y = leftBtnTitle.Bottom + Application.GetRealHeight(4);
            leftBtnLine.Y = leftBtnTitle.Bottom + Application.GetRealHeight(0);
            if (leftBtnTitle.GetTextWidth() < leftBtnTitle.Width)
            {
                leftBtnTitle.Width = leftBtnTitle.GetTextWidth();
@@ -1074,7 +885,7 @@
            rightBtnLine.Y = rightBtnTitle.Bottom + Application.GetRealHeight(4);
            rightBtnLine.Y = rightBtnTitle.Bottom + Application.GetRealHeight(0);
            if (rightBtnTitle.GetTextWidth() < rightBtnTitle.Width)
            {