| | |
| | | /// <summary>
|
| | | /// 渐变时间修改
|
| | | /// </summary>
|
| | | //DiyImageSeekBar barFadeTime;
|
| | | DiyImageSeekBar barFadeTime;
|
| | | /// <summary>
|
| | | /// 色温的滑动控件
|
| | | /// </summary>
|
| | |
| | | btnBrightnessText = new Button()
|
| | | {
|
| | | Gravity = Gravity.CenterHorizontal,
|
| | | Y = ((100 - Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.Brightness))) * Application.GetRealHeight(222 - 16) / 100) + Application.GetRealWidth(80),
|
| | | Y = ((100 - Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.Brightness))) * Application.GetRealHeight(222 - 16) / 100) + Application.GetRealWidth(80),
|
| | | Width = Application.GetRealWidth(56),
|
| | | Height = Application.GetRealWidth(46),
|
| | | UnSelectedImagePath = "FunctionIcon/Light/BrightnessBg.png",
|
| | |
| | | TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
|
| | | Text = Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.Brightness)) + "%",
|
| | | };
|
| | | controlView.AddChidren(btnBrightnessText);
|
| | | controlView.AddChidren(btnBrightnessText); |
| | | |
| | | |
| | | #region 渐变时间调节
|
| | | if (function.GetAttribute(FunctionAttributeKey.FadeTime) != null)
|
| | | { |
| | | var btnGradualChangeText = new Button() |
| | | { |
| | | X = Application.GetRealWidth(35), |
| | | Y = Application.GetRealHeight(306 + 40), |
| | | Width = Application.GetRealWidth(224), |
| | | Height = Application.GetRealHeight(21), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextID = StringId.SpeedOfChange, |
| | | }; |
| | | controlView.AddChidren(btnGradualChangeText); |
| | | |
| | | var btnGradualChangeMinValuesText = new Button() |
| | | { |
| | | X = Application.GetRealWidth(35), |
| | | Y = btnGradualChangeText.Bottom + Application.GetRealHeight(5), |
| | | Width = Application.GetRealWidth(22), |
| | | Height = Application.GetRealHeight(21), |
| | | Text = "0s", |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | }; |
| | | controlView.AddChidren(btnGradualChangeMinValuesText); |
| | | |
| | | barFadeTime = new DiyImageSeekBar() |
| | | { |
| | | X = btnGradualChangeMinValuesText.Right, |
| | | Y = Application.GetRealHeight(360), |
| | | Width = Application.GetRealWidth(210), |
| | | Height = Application.GetRealHeight(54), |
| | | SeekBarViewHeight = Application.GetRealHeight(8), |
| | | ThumbImagePath = "Public/ThumbImage.png", |
| | | ThumbImageHeight = Application.GetRealHeight(54), |
| | | ProgressBarColor = CSS_Color.MainColor, |
| | | ProgressTextColor = CSS_Color.FirstLevelTitleColor, |
| | | ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | ProgressBarUnitSring = "s", |
| | | MaxValue = 10, |
| | | Progress = Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.FadeTime)), |
| | | SeekBarPadding = Application.GetRealWidth(20), |
| | | }; |
| | | controlView.AddChidren(barFadeTime); |
| | | |
| | | var btnGradualChangeMaxValuesText = new Button() |
| | | { |
| | | X = barFadeTime.Right, |
| | | Y = btnGradualChangeText.Bottom + Application.GetRealHeight(5), |
| | | Width = Application.GetRealWidth(35), |
| | | Height = Application.GetRealHeight(21), |
| | | Text = "10s", |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | }; |
| | | controlView.AddChidren(btnGradualChangeMaxValuesText); |
| | | }
|
| | | #endregion
|
| | |
|
| | |
|
| | | #region 色温
|
| | | var cctAttr = function.GetAttribute(FunctionAttributeKey.CCT);
|
| | | if(cctAttr.min == 0) |
| | | { |
| | | cctAttr.min = 2700; |
| | | }
|
| | | if(cctAttr.max == 0) |
| | | { |
| | | cctAttr.max = 6500; |
| | | }
|
| | |
|
| | | //色温
|
| | | var btnTempClolor = new Button();
|
| | | btnTempClolor.X = Application.GetRealWidth(35);
|
| | | btnTempClolor.Y = Application.GetRealHeight(306 +60);
|
| | | btnTempClolor.Y = Application.GetRealHeight(395);
|
| | | btnTempClolor.Width = Application.GetRealWidth(224);
|
| | | btnTempClolor.Height = Application.GetRealHeight(21);
|
| | | btnTempClolor.TextAlignment = TextAlignment.CenterLeft;
|
| | |
| | | btnTempClolor.TextID = StringId.ColorTemperature;
|
| | | controlView.AddChidren(btnTempClolor);
|
| | |
|
| | |
|
| | | //2700K
|
| | | var btnTempClolorMin = new Button();
|
| | | btnTempClolorMin.Y = btnTempClolor.Bottom + Application.GetRealHeight(9);
|
| | | btnTempClolorMin.Width = Application.GetRealWidth(54);
|
| | | btnTempClolorMin.Height = Application.GetRealHeight(21);
|
| | | btnTempClolorMin.Text = "2700K";
|
| | | btnTempClolorMin.Text = cctAttr.min + "K";
|
| | | btnTempClolorMin.TextAlignment = TextAlignment.CenterRight;
|
| | | btnTempClolorMin.TextColor = CSS_Color.PromptingColor1;
|
| | | btnTempClolorMin.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
|
| | |
| | | barColorTemplatrue = new CCTSeekBarControl();
|
| | | barColorTemplatrue.X = btnTempClolorMin.Right;
|
| | | barColorTemplatrue.Y = Application.GetRealHeight(340);
|
| | | barColorTemplatrue.MinValue = 27;
|
| | | barColorTemplatrue.MaxValue = 65;
|
| | | barColorTemplatrue.MinValue = cctAttr.min /100;
|
| | | barColorTemplatrue.MaxValue = cctAttr.max / 100;
|
| | | barColorTemplatrue.ProgressBarColor = 0x00000000;//全部透明
|
| | | barColorTemplatrue.ProgressBarUnEnableColor = 0x00000000;
|
| | | barColorTemplatrue.SeekBarBackgroundColor = 0x00000000;
|
| | |
| | | btnTempClolorMax.X = barColorTemplatrue.Right;
|
| | | btnTempClolorMax.Width = Application.GetRealWidth(54);
|
| | | btnTempClolorMax.Height = Application.GetRealHeight(21);
|
| | | btnTempClolorMax.Text = "6500K";
|
| | | btnTempClolorMax.Text = cctAttr.max + "K";
|
| | | btnTempClolorMax.TextAlignment = TextAlignment.CenterLeft;
|
| | | btnTempClolorMax.TextColor = CSS_Color.PromptingColor1;
|
| | | btnTempClolorMax.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
|
| | | controlView.AddChidren(btnTempClolorMax);
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region 渐变时间调节
|
| | | //var btnGradualChangeText = new Button()
|
| | | //{
|
| | | // X = Application.GetRealWidth(35),
|
| | | // Y = Application.GetRealHeight(385),
|
| | | // Width = Application.GetRealWidth(224),
|
| | | // Height = Application.GetRealHeight(21),
|
| | | // TextAlignment = TextAlignment.CenterLeft,
|
| | | // TextColor = CSS_Color.FirstLevelTitleColor,
|
| | | // TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
| | | // TextID = StringId.SpeedOfChange,
|
| | | //};
|
| | | //controlView.AddChidren(btnGradualChangeText);
|
| | |
|
| | | //var btnGradualChangeMinValuesText = new Button()
|
| | | //{
|
| | | // X = Application.GetRealWidth(35),
|
| | | // Y = btnGradualChangeText.Bottom + Application.GetRealHeight(8),
|
| | | // Width = Application.GetRealWidth(22),
|
| | | // Height = Application.GetRealHeight(21),
|
| | | // Text = "0s",
|
| | | // TextAlignment = TextAlignment.CenterLeft,
|
| | | // TextColor = CSS_Color.PromptingColor1,
|
| | | // TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
| | | //};
|
| | | //controlView.AddChidren(btnGradualChangeMinValuesText);
|
| | |
|
| | | //barFadeTime = new DiyImageSeekBar()
|
| | | //{
|
| | | // X = btnGradualChangeMinValuesText.Right,
|
| | | // Y = Application.GetRealHeight(412 - 21) + Application.GetRealHeight(8),
|
| | | // Width = Application.GetRealWidth(210),
|
| | | // Height = Application.GetRealHeight(54),
|
| | | // SeekBarViewHeight = Application.GetRealHeight(8),
|
| | | // ThumbImagePath = "Public/ThumbImage.png",
|
| | | // ThumbImageHeight = Application.GetRealHeight(54),
|
| | | // ProgressBarColor = CSS_Color.MainColor,
|
| | | // ProgressTextColor = CSS_Color.FirstLevelTitleColor,
|
| | | // ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
| | | // ProgressBarUnitSring = "s",
|
| | | // MaxValue = 10,
|
| | | // Progress = function.fadeTime,
|
| | | // SeekBarPadding = Application.GetRealWidth(20),
|
| | | //};
|
| | | //controlView.AddChidren(barFadeTime);
|
| | |
|
| | | //var btnGradualChangeMaxValuesText = new Button()
|
| | | //{
|
| | | // X = barFadeTime.Right,
|
| | | // Y = btnGradualChangeText.Bottom + Application.GetRealHeight(8),
|
| | | // Width = Application.GetRealWidth(35),
|
| | | // Height = Application.GetRealHeight(21),
|
| | | // Text = "10s",
|
| | | // TextAlignment = TextAlignment.CenterLeft,
|
| | | // TextColor = CSS_Color.PromptingColor1,
|
| | | // TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
| | | //};
|
| | | //controlView.AddChidren(btnGradualChangeMaxValuesText);
|
| | | #endregion
|
| | |
|
| | | btnSwitch = new Button()
|
| | |
| | | /// <summary>
|
| | | /// 左右滑动的进度条控件
|
| | | /// </summary>
|
| | | public class CCTSeekBarControl : 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 Button btnTopView = null;
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 初始化_____________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 左右滑动的进度条控件
|
| | | /// </summary>
|
| | | /// <param name="i_width">宽度,非真实值</param>
|
| | | public CCTSeekBarControl(int i_width = 210)
|
| | | {
|
| | | this.Width = Application.GetRealWidth(i_width);
|
| | | this.Height = Application.GetRealHeight(54);
|
| | | //圆球的宽度
|
| | | this.ThumbImageHeight = Application.GetRealHeight(54);
|
| | | this.ThumbImagePath = "Public/ThumbImage.png";
|
| | | //进度条的宽度
|
| | | this.SeekBarViewHeight = Application.GetRealHeight(8);
|
| | | //上方是否显示文本
|
| | | this.IsProgressTextShow = false;
|
| | | this.Gravity = Gravity.CenterHorizontal;
|
| | | //进度条颜色
|
| | | this.ProgressBarColor = CSS_Color.MainColor;
|
| | | //左右边距
|
| | | this.SeekBarPadding = Application.GetRealWidth(20);
|
| | |
|
| | | //进度条值改变事件
|
| | | 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(24);
|
| | | this.btnTopView = new Button();
|
| | | btnTopView.Width = i_width;
|
| | | btnTopView.Height = contrHeight;
|
| | | 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
|
| | | public class CCTSeekBarControl : 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 Button btnTopView = null; |
| | | |
| | | #endregion
|
| | | |
| | | #region ■ 初始化_____________________________
|
| | | |
| | | /// <summary>
|
| | | /// 左右滑动的进度条控件
|
| | | /// </summary>
|
| | | /// <param name="i_width">宽度,非真实值</param>
|
| | | public CCTSeekBarControl(int i_width = 210) |
| | | { |
| | | ProgressChangeDelayTime = 30; |
| | | this.Width = Application.GetRealWidth(i_width); |
| | | this.Height = Application.GetRealHeight(54); |
| | | //圆球的宽度 |
| | | this.ThumbImageHeight = Application.GetRealHeight(54); |
| | | this.ThumbImagePath = "Public/ThumbImage.png"; |
| | | //进度条的宽度 |
| | | this.SeekBarViewHeight = Application.GetRealHeight(8); |
| | | //上方是否显示文本 |
| | | this.IsProgressTextShow = false; |
| | | this.Gravity = Gravity.CenterHorizontal; |
| | | //进度条颜色 |
| | | this.ProgressBarColor = CSS_Color.MainColor; |
| | | //左右边距 |
| | | this.SeekBarPadding = Application.GetRealWidth(20); |
| | | |
| | | //进度条值改变事件 |
| | | 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(24); |
| | | this.btnTopView = new Button(); |
| | | btnTopView.Width = i_width; |
| | | btnTopView.Height = contrHeight; |
| | | 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
|
| | | }
|
| | | } |