| | |
| | | /// <summary>
|
| | | /// 行条类型的进度条控件
|
| | | /// </summary>
|
| | | /// <param name="width">非真实值</param>
|
| | | /// <param name="height">非真实值</param>
|
| | | /// <param name="width">
|
| | | /// <para>模式1:会动的那个进度条的宽度(非真实值)</para>
|
| | | /// <para>模式2:进度条在持续无限的来回移动的区域宽度(非真实值)</para>
|
| | | /// </param>
|
| | | /// <param name="height">
|
| | | /// <para>模式1:会动的那个进度条的高度(非真实值)</para>
|
| | | /// <para>模式2:进度条在持续无限的来回移动的高度(非真实值)</para>
|
| | | /// </param>
|
| | | public ProgressRowBar(int width, int height)
|
| | | {
|
| | | this.Height = Application.GetRealHeight(height);
|
| | |
| | | /// <summary>
|
| | | /// 模式1 该模式为:手动填写进度值
|
| | | /// </summary>
|
| | | /// <param name="showText">是否在进度条上方显示数值百分比</param>
|
| | | /// <param name="showText">
|
| | | /// <para>是否在进度条上方显示数值百分比</para>
|
| | | /// <para>请确保控件的上方有足够的区域(注:请不要扩大此控件的高度)</para>
|
| | | /// </param>
|
| | | public void StartMode1(bool showText = false)
|
| | | {
|
| | | if (m_ModeDiv != -1) { return; }
|
| | |
| | | {
|
| | | //进度值文本
|
| | | this.frameProgressBack = new FrameLayout();
|
| | | frameProgressBack.Width = Application.GetRealWidth(84);
|
| | | frameProgressBack.Width = Application.GetRealWidth(120);
|
| | | frameProgressBack.Height = Application.GetRealHeight(60);
|
| | | frameProgressBack.Y = this.Y - Application.GetRealHeight(60);
|
| | | frameProgressBack.X = this.X - Application.GetRealWidth(84) / 2;
|
| | |
| | |
|
| | | var btnProgressPic = new PicViewControl(84, 60);
|
| | | btnProgressPic.UnSelectedImagePath = "Item/ProgressMsg.png";
|
| | | btnProgressPic.Gravity = Gravity.CenterHorizontal;
|
| | | frameProgressBack.AddChidren(btnProgressPic);
|
| | | this.btnProgressTextView = new NormalViewControl(84, 45, true);
|
| | | this.btnProgressTextView = new NormalViewControl(120, 45, true);
|
| | | btnProgressTextView.TextSize = 10;
|
| | | btnProgressTextView.TextAlignment = TextAlignment.Center;
|
| | | btnProgressTextView.Text = "0%";
|
| | | btnProgressTextView.Gravity = Gravity.CenterHorizontal;
|
| | | frameProgressBack.AddChidren(btnProgressTextView);
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 重置进度条(只对模式1有效)
|
| | | /// </summary>
|
| | | public void ResetProgressBar()
|
| | | {
|
| | | if (this.m_ModeDiv == 1 && this.btnProgressBar != null)
|
| | | {
|
| | | this.btnProgressBar.Width = 0;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | int width = (int)(value * this.Width);
|
| | | if (btnProgressBar.Width >= width)
|
| | | {
|
| | | //不能让进度条往回走
|
| | | return;
|
| | | }
|
| | | btnProgressBar.Width = width;
|
| | | if (this.btnProgressTextView != null)
|
| | | {
|
| | |
| | | /// <summary>
|
| | | /// 模式2 该模式为:不能手动指定进度值,由内部线程处理,进度条在持续无限的来回移动
|
| | | /// </summary>
|
| | | /// <param name="proWidth">会移动的进度条的宽度(非真实值)</param>
|
| | | /// <param name="proWidth">持续无限的来回移动的进度条的宽度(非真实值)</param>
|
| | | public void StartMode2(int proWidth = 100)
|
| | | {
|
| | | if (m_ModeDiv != -1) { return; }
|