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/UserCenter/CommonBase/Controls/CompoundControls/SeekBarControl.cs | 123 +++++++++++++++++++++++++++++++++++----- 1 files changed, 107 insertions(+), 16 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SeekBarControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SeekBarControl.cs index 1882d5f..28d0d66 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SeekBarControl.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SeekBarControl.cs @@ -11,7 +11,22 @@ { #region 鈻� 鍙橀噺澹版槑___________________________ - private uint nowProgressBarColor = 0; + /// <summary> + /// 杩涘害鍊兼敼鍙�,濡傛灉瑕佽缃垵濮嬭繘搴﹀��,姝ゅ彉閲忚鍦ㄨ缃垵濮嬭繘搴﹀�间箣鍓嶈繘琛岃缃�(绗竴涓弬鏁�0:婊戝姩鐨勬椂鍊�,1:鎵嬫寚寮硅捣鐨勬椂鍊�) + /// </summary> + public Action<int, int> ProgressChangedEvent = null; + /// <summary> + /// 杩涘害鏉″彲鐢ㄦ椂鐨勮儗鏅壊 + /// </summary> + private uint ProgressBarEnableColor = 0; + /// <summary> + /// 杩涘害鏉′笉鍙敤鏃剁殑鑳屾櫙鑹�(榛樿鐏拌壊) + /// </summary> + public uint ProgressBarUnEnableColor = 0xffe8e8e8; + /// <summary> + /// 褰撳墠鍙敤鐘舵�� + /// </summary> + private bool nowEnable = true; /// <summary> /// 鎺т欢鑳藉惁浣跨敤 /// </summary> @@ -19,16 +34,20 @@ { set { + //鐘舵�佹病鏈夋敼鍙� + if (nowEnable == value) { return; } + nowEnable = value; + this.IsClickable = value; if (value == true) { //鍘熸潵鐨勯鑹� - base.ProgressBarColor = nowProgressBarColor; + base.ProgressBarColor = ProgressBarEnableColor; } else { //鐏拌壊 - base.ProgressBarColor = 0xffe8e8e8; + base.ProgressBarColor = ProgressBarUnEnableColor; } } } @@ -40,23 +59,53 @@ { set { - nowProgressBarColor = value; + ProgressBarEnableColor = value; base.ProgressBarColor = value; } } + private int m_SeekBarPadding = Application.GetRealWidth(20); /// <summary> - /// 杩涘害鍊兼敼鍙�,濡傛灉瑕佽缃垵濮嬭繘搴﹀��,姝ゅ彉閲忚鍦ㄨ缃垵濮嬭繘搴﹀�间箣鍓嶈繘琛岃缃�(绗竴涓弬鏁�0:婊戝姩鐨勬椂鍊�,1:鎵嬫寚寮硅捣鐨勬椂鍊�) + /// 杩涘害鏉′笌宸﹀彸涓よ竟鐨勮竟妗嗙殑杈硅窛(閲嶅啓搴曞眰灞炴��) /// </summary> - public Action<int, int> ProgressChangedEvent = null; + public new int SeekBarPadding + { + set + { + m_SeekBarPadding = value; + base.SeekBarPadding = value; + } + } + + private int m_MaxValue = 0; /// <summary> - /// 杩涘害鏉′簨浠剁殑瑙﹀彂鏃堕棿闂撮殧(榛樿娌℃湁闂撮殧,鍗曚綅涓烘绉�) + /// 杩涘害鏉℃渶澶у��(閲嶅啓搴曞眰灞炴��) /// </summary> - public int EventWaitTime = -1; + public new int MaxValue + { + set + { + m_MaxValue = value; + base.MaxValue = value; + } + } + + private int m_MinValue = 0; /// <summary> - /// 鍓嶅洖鏃堕棿 + /// 杩涘害鏉℃渶灏忓��(閲嶅啓搴曞眰灞炴��) /// </summary> - private DateTime oldTime = DateTime.Now; + public new int MinValue + { + set + { + m_MinValue = value; + base.MinValue = value; + } + } + /// <summary> + /// 涓婃柟鏄剧ず鐨勬枃鏈� + /// </summary> + private NormalViewControl btnTopView = null; #endregion @@ -104,12 +153,6 @@ this.OnProgressChangedEvent -= this.MyProgressChangedEvent; return; } - //鏃堕棿闂撮殧 - if (EventWaitTime != -1) - { - if ((DateTime.Now - oldTime).TotalMilliseconds < EventWaitTime) { return; } - oldTime = DateTime.Now; - } this.ProgressChangedEvent(0, value); } @@ -132,6 +175,54 @@ #endregion + #region 鈻� 鑷畾涔変笂鏂规樉绀烘枃鏈琠________________ + + /// <summary> + /// 鍦ㄤ笂鏂规樉绀鸿嚜瀹氫箟鏂囨湰 + /// </summary> + /// <param name="i_width">瀹藉害(鐪熷疄鍊�)</param> + /// <param name="textSize">鏂囧瓧澶у皬</param> + /// <param name="textColor">鏂囧瓧棰滆壊</param> + public void ShowCustomTextView(int i_width, int textSize, uint textColor) + { + if (this.btnTopView != null) { return; } + + int contrHeight = Application.GetRealHeight(60); + this.btnTopView = new NormalViewControl(i_width, contrHeight, false); + btnTopView.TextColor = textColor; + btnTopView.TextSize = textSize; + btnTopView.TextAlignment = TextAlignment.Center; + btnTopView.Y = this.Y - contrHeight + Application.GetRealHeight(20); + //鍒濆鍖栨椂,X杞村彲浠ヤ笉鐢ㄧ悊浼� + + this.Parent.AddChidren(btnTopView); + } + + /// <summary> + /// 璁剧疆鑷畾涔夋枃鏈俊鎭� + /// </summary> + /// <param name="i_text"></param> + public void SetCustomText(string i_text) + { + if (this.btnTopView == null) { return; } + + this.btnTopView.Text = i_text; + //婊戞潯鏈�宸﹁竟鐨勮窛绂� + int XX = this.X + this.m_SeekBarPadding; + //褰撳墠婊戞潯鎵�鍦ㄧ殑澶ц嚧鐧惧垎姣� + int tempValue = this.Progress - this.m_MinValue; + if (tempValue < 0) { tempValue = 0; } + decimal persent = (decimal)tempValue / (this.m_MaxValue - this.m_MinValue); + //褰撳墠婊戞潯鎵�鍦ㄧ殑澶ц嚧浣嶇疆 + XX += (int)((this.Width - this.m_SeekBarPadding * 2) * persent); + //鍥犱负瑕佸眳涓�,鎵�浠ュ噺鎺夎嚜瀹氫箟鎺т欢鐨勫搴︾殑涓�鑸� + XX = XX - this.btnTopView.Width / 2; + + this.btnTopView.X = XX; + } + + #endregion + #region 鈻� 涓�鑸柟娉昣__________________________ /// <summary> -- Gitblit v1.8.0