From c7df85937f73fb347ee0b19e9c052d2d00a6df6c Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期五, 18 九月 2020 13:58:19 +0800 Subject: [PATCH] 新版本 --- ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorTemperatureLightDetailCardForm.cs | 63 ++++++++++++------------------- 1 files changed, 25 insertions(+), 38 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorTemperatureLightDetailCardForm.cs b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorTemperatureLightDetailCardForm.cs index 6408315..f233a45 100755 --- a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorTemperatureLightDetailCardForm.cs +++ b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorTemperatureLightDetailCardForm.cs @@ -75,6 +75,7 @@ waveSeekBar.MaxValue = 100; waveSeekBar.Progress = (int)(((ColorTemperatureLight)this.device).Level * 1.0 / MaxLevel * 100); waveSeekBar.CornerRadius = Application.GetRealHeight(58); + waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarColor_Start, ZigbeeColor.Current.GXCWaveSeekBarColor_End); frameWhiteBack.AddChidren(waveSeekBar); //寮�鍏� @@ -97,13 +98,6 @@ if (IsLightOpen == true) { btnSwitch.IsSelected = true; - waveSeekBar.IsClickable = true; - waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarColor_Start, ZigbeeColor.Current.GXCWaveSeekBarColor_End); - } - else - { - waveSeekBar.IsClickable = false; - waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor); } //褰╃伅鎺т欢閲岄潰鐨勯偅涓樉绀虹櫨鍒嗘瘮鐨勬帶浠� @@ -252,10 +246,18 @@ /// <param name="isOpen"></param> private void SetSwitchCommand(bool isOpen) { + //鑾峰彇褰撳墠浜害 + int level = Convert.ToInt32(this.device.GetType().InvokeMember("Level", System.Reflection.BindingFlags.GetField, null, this.device, null)); + //濡傛灉浣忓畢鏄櫄鎷熶綇瀹� if (Common.Config.Instance.Home.IsVirtually == true) { ((LightBase)this.device).OnOffStatus = isOpen == true ? 1 : 0; + if (((LightBase)this.device).OnOffStatus == 1 && level == 0) + { + //濡傛灉褰撳墠鏄墦寮�鐘舵��,骞朵笖浜害涓�0鐨勮瘽,鍒欓渶瑕佸彉鎴�100%浜害 + this.device.GetType().InvokeMember("Level", System.Reflection.BindingFlags.SetField, null, this.device, new object[] { 100 }); + } //鍒锋柊寮�鍏崇姸鎬� this.RefreshSwitchStatu(isOpen); return; @@ -269,29 +271,29 @@ { HdlThreadLogic.Current.RunMain(() => { + bool statu = ((LightBase)this.device).OnOffStatus == 1; //鎺ユ敹鍒扮綉鍏冲洖澶� if (result == true) { - bool statu = ((LightBase)this.device).OnOffStatus == 1; //鍒锋柊寮�鍏崇姸鎬� this.RefreshSwitchStatu(statu); - if (statu == true) - { - //绛夊緟缁撴灉缁撴潫鍚�,褰╃伅鎺т欢鍙互婊戝姩 - waveSeekBar.IsClickable = true; - } + //鐘舵�佸彇鍙� + listControl[0].IsSelected = statu; } }); }); - - //鍙戦�佺瓑寰呯殑鏃堕棿鍐�,涓嶈兘婊戝姩褰╃伅鎺т欢 - waveSeekBar.IsClickable = false; - //鐘舵�佸彇鍙� - listControl[0].IsSelected = !listControl[0].IsSelected; if (isOpen == true) { //鎵撳紑 - this.device.SwitchControl(1); + if (level == 0) + { + //濡傛灉褰撳墠鏄墦寮�鐘舵��,骞朵笖浜害涓�0鐨勮瘽,鍒欓渶瑕佸彉鎴�100%浜害 + this.device.GetType().InvokeMember("SetLevel", System.Reflection.BindingFlags.InvokeMethod, null, this.device, new object[] { 254 }); + } + else + { + this.device.SwitchControl(1); + } } else { @@ -338,38 +340,23 @@ { //浜害鏄繀椤昏鍒锋柊鐨� 浜害 XX this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uBrightness) + " " + HdlDeviceOtherLogic.Current.GetDeviceStatu(this.device)); - if (this.isProgressing == false) - { - //褰撹繘搴﹀�煎湪鎵嬪姩鍙樻洿涓椂,涓嶆帴鏀舵帹閫� - waveSeekBar.Progress = (int)(((ColorTemperatureLight)this.device).Level * 1.0 / MaxLevel * 100); - } } if (isOpen == false && this.IsLightOpen == true) { //鐘舵�佷笉涓�鏍�,鎵嶅彉鏇村瓧鏍�:鍏抽棴 this.SetStatuText(Language.StringByID(R.MyInternationalizationString.Close)); } - if (listControl[0].IsSelected != isOpen) { //寮�鍏崇姸鎬佸彉鏇� listControl[0].IsSelected = isOpen; } - - //鐘舵�佷笉涓�鏍锋墠鍙樻洿 - if (this.IsLightOpen != isOpen) + if (this.isProgressing == false) { - if (isOpen == true) - { - waveSeekBar.IsClickable = true; - waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarColor_Start, ZigbeeColor.Current.GXCWaveSeekBarColor_End); - } - else - { - waveSeekBar.IsClickable = false; - waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor); - } + //褰撹繘搴﹀�煎湪鎵嬪姩鍙樻洿涓椂,涓嶆帴鏀舵帹閫� + waveSeekBar.Progress = (int)(((ColorTemperatureLight)this.device).Level * 1.0 / MaxLevel * 100); } + this.IsLightOpen = isOpen; //鍥炲鐨勭粨鏋滆,澶勪簬鎵撳紑鐘舵�佹墠鑳藉彂閫� this.canSetProgressValue = this.IsLightOpen; -- Gitblit v1.8.0