From c2a220d25e2b780cd7b13030666c6cdd08a58519 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期四, 25 八月 2022 17:30:41 +0800
Subject: [PATCH] 开发分支第一个版本
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SeekBarControl.cs | 239 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 239 insertions(+), 0 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SeekBarControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SeekBarControl.cs
new file mode 100644
index 0000000..7047a9d
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SeekBarControl.cs
@@ -0,0 +1,239 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter
+{
+ /// <summary>
+ /// 宸﹀彸婊戝姩鐨勮繘搴︽潯鎺т欢
+ /// </summary>
+ public class SeekBarControl : DiyImageSeekBar
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <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>
+ public new bool Enable
+ {
+ set
+ {
+ //鐘舵�佹病鏈夋敼鍙�
+ if (nowEnable == value) { return; }
+ nowEnable = value;
+
+ this.IsClickable = value;
+ if (value == true)
+ {
+ //鍘熸潵鐨勯鑹�
+ base.ProgressBarColor = ProgressBarEnableColor;
+ }
+ else
+ {
+ //鐏拌壊
+ base.ProgressBarColor = ProgressBarUnEnableColor;
+ }
+ }
+ }
+
+ /// <summary>
+ /// 杩涘害鏉¢鑹�
+ /// </summary>
+ public new uint ProgressBarColor
+ {
+ set
+ {
+ ProgressBarEnableColor = value;
+ base.ProgressBarColor = value;
+ }
+ }
+
+ private int m_SeekBarPadding = Application.GetRealWidth(20);
+ /// <summary>
+ /// 杩涘害鏉′笌宸﹀彸涓よ竟鐨勮竟妗嗙殑杈硅窛(閲嶅啓搴曞眰灞炴��)
+ /// </summary>
+ public new int SeekBarPadding
+ {
+ set
+ {
+ m_SeekBarPadding = value;
+ base.SeekBarPadding = value;
+ }
+ }
+
+ private int m_MaxValue = 0;
+ /// <summary>
+ /// 杩涘害鏉℃渶澶у��(閲嶅啓搴曞眰灞炴��)
+ /// </summary>
+ public new int MaxValue
+ {
+ set
+ {
+ m_MaxValue = value;
+ base.MaxValue = value;
+ }
+ }
+
+ private int m_MinValue = 0;
+ /// <summary>
+ /// 杩涘害鏉℃渶灏忓��(閲嶅啓搴曞眰灞炴��)
+ /// </summary>
+ public new int MinValue
+ {
+ set
+ {
+ m_MinValue = value;
+ base.MinValue = value;
+ }
+ }
+ /// <summary>
+ /// 涓婃柟鏄剧ず鐨勬枃鏈�
+ /// </summary>
+ private NormalViewControl btnTopView = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 宸﹀彸婊戝姩鐨勮繘搴︽潯鎺т欢
+ /// </summary>
+ /// <param name="i_width">瀹藉害,闈炵湡瀹炲��</param>
+ public SeekBarControl(int i_width = 962)
+ {
+ this.Width = Application.GetRealWidth(i_width);
+ this.Height = Application.GetRealHeight(84);
+ //鍦嗙悆鐨勫搴�
+ this.ThumbImageHeight = Application.GetRealHeight(84);
+ this.ThumbImagePath = "Item/SeekBarIcon.png";
+ //杩涘害鏉$殑瀹藉害
+ this.SeekBarViewHeight = Application.GetRealHeight(10);
+ //杩涘害鏉¤儗鏅壊
+ this.SeekBarBackgroundColor = 0xfff5f5f5;
+ //涓婃柟鏄惁鏄剧ず鏂囨湰
+ this.IsProgressTextShow = false;
+ this.MaxValue = 100;
+ this.Gravity = Gravity.CenterHorizontal;
+
+ //杩涘害鏉″�兼敼鍙樹簨浠�
+ this.OnProgressChangedEvent += this.MyProgressChangedEvent;
+ //鎵嬫寚寮硅捣浜嬩欢
+ this.OnStopTrackingTouchEvent += this.MyStopTrackingTouchEvent;
+ }
+
+ #endregion
+
+ #region 鈻� 浜嬩欢_______________________________
+
+ /// <summary>
+ /// 杩涘害鏉″�兼敼鍙樹簨浠�
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="value"></param>
+ private void MyProgressChangedEvent(object sender, int value)
+ {
+ if (this.ProgressChangedEvent == null)
+ {
+ this.OnProgressChangedEvent -= this.MyProgressChangedEvent;
+ return;
+ }
+
+ this.ProgressChangedEvent(0, value);
+ }
+
+ /// <summary>
+ /// 鎵嬫寚寮硅捣浜嬩欢
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="value"></param>
+ private void MyStopTrackingTouchEvent(object sender, int value)
+ {
+ if (this.ProgressChangedEvent == null)
+ {
+ this.OnStopTrackingTouchEvent -= this.MyStopTrackingTouchEvent;
+ return;
+ }
+ //寮硅捣浜嬩欢涓嶉渶瑕佸垽鏂椂闂�
+ this.ProgressChangedEvent(1, value);
+ }
+
+ #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>
+ /// 鎺т欢鎽ф瘉
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ this.ProgressChangedEvent = null;
+ base.RemoveFromParent();
+ }
+
+ #endregion
+ }
+}
--
Gitblit v1.8.0