| | |
| | | namespace HDL_ON.Stan
|
| | | {
|
| | | /// <summary>
|
| | | /// 左右滑动的进度条控件
|
| | | /// <para>左右滑动的进度条控件(高度为54 左右间距为20)</para>
|
| | | /// <para>如果是加在PageLayout里面的话,加入父控件之后,请调用BindPageLayout()</para>
|
| | | /// </summary>
|
| | | public class SeekBarImageControl : DiyImageSeekBar
|
| | | {
|
| | |
| | | /// 上方显示的文本
|
| | | /// </summary>
|
| | | private Button btnTopView = null;
|
| | | /// <summary>
|
| | | /// 绑定PageLayout,事件冲突,需要特殊处理
|
| | | /// </summary>
|
| | | private PageLayout pageLayoutBind = null;
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 初始化_____________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 左右滑动的进度条控件(高度为54 左右间距为20)
|
| | | /// <para>左右滑动的进度条控件(高度为54 左右间距为20)</para>
|
| | | /// <para>如果是加在PageLayout里面的话,加入父控件之后,请调用BindPageLayout()</para>
|
| | | /// </summary>
|
| | | /// <param name="i_width">宽度,非真实值,实际宽度会加上左右间距</param>
|
| | | public SeekBarImageControl(int i_width)
|
| | | {
|
| | | this.ProgressChangeDelayTime = 0;
|
| | |
|
| | | this.Width = Application.GetRealWidth(i_width) + Application.GetRealWidth(20) * 2;
|
| | | this.Width = Application.GetRealWidth(i_width) + m_SeekBarPadding * 2;
|
| | | this.Height = Application.GetRealHeight(54);
|
| | | //圆球的高度
|
| | | this.ThumbImageHeight = Application.GetRealHeight(54);
|
| | |
| | | this.OnStopTrackingTouchEvent -= this.MyStopTrackingTouchEvent;
|
| | | return;
|
| | | }
|
| | | if (this.pageLayoutBind != null && this.pageLayoutBind.ScrollEnabled == false)
|
| | | {
|
| | | //事件冲突,特殊处理,让pageLayout还原滑动
|
| | | this.pageLayoutBind.ScrollEnabled = true;
|
| | | }
|
| | | //弹起事件不需要判断时间
|
| | | this.ProgressChangedEvent(1, value);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 手指开始点击事件
|
| | | /// </summary>
|
| | | /// <param name="sender"></param>
|
| | | /// <param name="value"></param>
|
| | | private void MyStartTrackingTouchEvent(object sender, bool value)
|
| | | {
|
| | | if (this.pageLayoutBind != null && this.pageLayoutBind.ScrollEnabled == true)
|
| | | {
|
| | | //事件冲突,特殊处理,让pageLayout不能滑动
|
| | | this.pageLayoutBind.ScrollEnabled = false;
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | #region ■ 一般方法___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 绑定PageLayout
|
| | | /// </summary>
|
| | | public void BindPageLayout()
|
| | | {
|
| | | //获取PageLayout
|
| | | this.pageLayoutBind = this.GetParentPageLayout();
|
| | | if (this.pageLayoutBind == null) { return; }
|
| | |
|
| | | this.OnStartTrackingTouchEvent -= this.MyStartTrackingTouchEvent;
|
| | | this.OnStartTrackingTouchEvent += this.MyStartTrackingTouchEvent;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 获取父控件的PageLayout
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private PageLayout GetParentPageLayout()
|
| | | {
|
| | | ViewGroup viewGroup = this.Parent;
|
| | | while (true)
|
| | | {
|
| | | if (viewGroup == null) { return null; }
|
| | | else if (viewGroup is PageLayout)
|
| | | {
|
| | | return (PageLayout)viewGroup;
|
| | | }
|
| | | viewGroup = viewGroup.Parent;
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 控件摧毁
|
| | | /// </summary>
|
| | | public override void RemoveFromParent()
|
| | | {
|
| | | this.pageLayoutBind = null;
|
| | | this.ProgressChangedEvent = null;
|
| | |
|
| | | base.RemoveFromParent();
|
| | | }
|
| | |
|