xm
2020-07-21 9a4b76398009cf76c508d61f7e48fb6f5cb7ac2d
ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/Base/DeviceCardCommon.cs
@@ -93,7 +93,7 @@
            btnBackGroud.UnSelectedImagePath = "Item/FunctionCardView.png";
            btnBackGroud.SelectedImagePath = "Item/FunctionCardViewSelected.png";
            btnBackGroud.Gravity = Gravity.CenterHorizontal;
            this.AddChidren(btnBackGroud, ChidrenBindMode.BindEventOnly);
            this.AddChidren(btnBackGroud, ChidrenBindMode.BindEvent);
            //设备名称控件
            this.btnDeviceName = new NormalViewControl(320, 63, true);
@@ -103,7 +103,7 @@
            btnDeviceName.TextColor = UserCenterColor.Current.TextGrayColor1;
            btnDeviceName.SelectedTextColor = UserCenterColor.Current.White;
            btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceEpointName(i_device);
            this.AddChidren(btnDeviceName, ChidrenBindMode.BindEventOnly);
            this.AddChidren(btnDeviceName, ChidrenBindMode.BindEvent);
            //收集控件
            this.btnCollect = new IconViewControl(107);
@@ -142,13 +142,13 @@
            fraDeviceRound.X = HdlControlLogic.Current.GetPictrueRealSize(44);
            fraDeviceRound.Y = HdlControlLogic.Current.GetPictrueRealSize(101);
            fraDeviceRound.BackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionUnSelectedBackgroundColor;
            this.AddChidren(fraDeviceRound, ChidrenBindMode.BindEventOnly);
            this.AddChidren(fraDeviceRound, ChidrenBindMode.BindEvent);
            //设备图标控件
            this.btnDeviceIcon = new IconViewControl(86);
            btnDeviceIcon.Gravity = Gravity.Center;
            fraDeviceRound.AddChidren(btnDeviceIcon);
            this.ChangedChidrenBindMode(fraDeviceRound, ChidrenBindMode.BindEventOnly);
            this.ChangedChidrenBindMode(fraDeviceRound, ChidrenBindMode.BindEvent);
            //状态文本控件
            this.btnStatu = new NormalViewControl(HdlControlLogic.Current.GetPictrueRealSize(300), HdlControlLogic.Current.GetPictrueRealSize(63), false);
@@ -157,7 +157,7 @@
            btnStatu.TextColor = UserCenterColor.Current.TextColor1;
            btnStatu.SelectedTextColor = Common.ZigbeeColor.Current.GXCTextSelectedColor;
            btnStatu.IsBold = true;
            this.AddChidren(btnStatu, ChidrenBindMode.BindEventOnly);
            this.AddChidren(btnStatu, ChidrenBindMode.BindEvent);
            //开关控件(不加入父控件中)
            this.btnSwitch = new PicViewControl(109, 104);
@@ -222,35 +222,14 @@
        {
            //设备状态必须刷新
            this.btnStatu.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(this.device);
            if (this.btnBackGroud.IsSelected == isOpen)
            {
                //状态一样,则不需要处理
                return;
            }
            //背景图片
            this.btnBackGroud.IsSelected = isOpen;
            //设备名称控件
            this.btnDeviceName.IsSelected = isOpen;
            this.btnDeviceName.IsBold = isOpen;
            //设备的背景圆圈图
            if (isOpen == true)
            {
                fraDeviceRound.BackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionBackgroundColor;
            }
            else
            {
                fraDeviceRound.BackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionUnSelectedBackgroundColor;
            }
            //设备图标控件
            this.btnDeviceIcon.IsSelected = isOpen;
            //状态文本控件
            this.btnStatu.IsSelected = isOpen;
            //开关控件
            if (btnSwitch != null)
            if (btnSwitch != null && this.btnSwitch.IsSelected != isOpen)
            {
                this.btnSwitch.IsSelected = isOpen;
            }
            //切换卡片状态特效
            this.SwitchCardStatuAppeal(isOpen);
        }
        /// <summary>
@@ -428,6 +407,84 @@
        #endregion
        #region ■ 卡片闪烁特效_______________________
        /// <summary>
        /// 是否处于特效中
        /// </summary>
        private bool isAppeal = false;
        /// <summary>
        /// 开启卡片闪烁特效
        /// </summary>
        public void StartCardLightAppeal()
        {
            //设备状态必须刷新
            this.btnStatu.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(this.device);
            if (this.isAppeal == true) { return; }
            this.isAppeal = true;
            HdlThreadLogic.Current.RunThread(() =>
            {
                //闪烁5秒,间隔400毫秒
                int count = 5000 / 400;
                bool isOpen = false;
                while (this.Parent != null && count >= 0)
                {
                    //闪烁特效
                    HdlThreadLogic.Current.RunMain(() =>
                    {
                        isOpen = !isOpen;
                        this.SwitchCardStatuAppeal(isOpen);
                    });
                    System.Threading.Thread.Sleep(400);
                    count--;
                }
                if (this.Parent != null && isOpen == false)
                {
                    HdlThreadLogic.Current.RunMain(() =>
                    {
                        //结束时,默认为打开特效
                        this.SwitchCardStatuAppeal(true);
                    }, ShowErrorMode.NO);
                }
                this.isAppeal = false;
            }, ShowErrorMode.NO);
        }
        /// <summary>
        /// 切换卡片状态特效
        /// </summary>
        private void SwitchCardStatuAppeal(bool isOpen)
        {
            if (this.btnBackGroud.IsSelected == isOpen)
            {
                //状态一样,则不需要处理
                return;
            }
            //背景图片
            this.btnBackGroud.IsSelected = isOpen;
            //设备名称控件
            this.btnDeviceName.IsSelected = isOpen;
            this.btnDeviceName.IsBold = isOpen;
            //设备的背景圆圈图
            if (isOpen == true)
            {
                fraDeviceRound.BackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionBackgroundColor;
            }
            else
            {
                fraDeviceRound.BackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionUnSelectedBackgroundColor;
            }
            //设备图标控件
            this.btnDeviceIcon.IsSelected = isOpen;
            //状态文本控件
            this.btnStatu.IsSelected = isOpen;
        }
        #endregion
        #region ■ 控件摧毁___________________________
        /// <summary>