using System;
|
namespace Shared.Phone
|
{
|
/// <summary>
|
/// 进度条(圆形),只能用于UserCenterCommonForm
|
/// </summary>
|
public class ProgressBar
|
{
|
/// <summary>
|
/// 最大值
|
/// </summary>
|
private static decimal Max = 100;
|
/// <summary>
|
/// 当前值
|
/// </summary>
|
private static decimal m_value = 0;
|
/// <summary>
|
/// 强制不显示进度条
|
/// </summary>
|
private static bool notShow = false;
|
/// <summary>
|
/// 强制不关闭进度条
|
/// </summary>
|
private static bool notClose = false;
|
/// <summary>
|
/// 特殊需求:强制不变更进度条的值
|
/// </summary>
|
private static bool notSetValue = false;
|
/// <summary>
|
/// 附加文本
|
/// </summary>
|
private static string appendText = string.Empty;
|
|
/// <summary>
|
/// 显示进度条
|
/// </summary>
|
/// <param name="text">初始文本</param>
|
public static void Show(string text = "")
|
{
|
m_value = 0;
|
HdlThreadLogic.Current.RunMain(() =>
|
{
|
if (Common.CommonPage.Loading.Visible == false && notShow == false)
|
{
|
Common.CommonPage.Loading.Start(text);
|
}
|
}, ShowErrorMode.NO);
|
}
|
|
/// <summary>
|
/// 隐藏进度条
|
/// </summary>
|
/// <param name="coerce">强制关闭</param>
|
public static void Close(bool coerce = false)
|
{
|
m_value = 0;
|
Max = 0;
|
if (coerce == true)
|
{
|
notClose = false;
|
}
|
HdlThreadLogic.Current.RunMain(() =>
|
{
|
if (Common.CommonPage.Loading.Visible == true && notClose == false)
|
{
|
Common.CommonPage.Loading.Hide();
|
notShow = false;
|
notClose = false;
|
notSetValue = false;
|
}
|
}, ShowErrorMode.NO);
|
}
|
|
/// <summary>
|
/// 进度值设定(数字)
|
/// </summary>
|
/// <param name="value">Value.</param>
|
public static void SetValue(decimal value)
|
{
|
m_value += value;
|
int value2 = (int)((m_value / Max) * 100);
|
if (value2 > 100)
|
{
|
value2 = 100;
|
}
|
|
SetValue(value2.ToString() + "%");
|
}
|
|
/// <summary>
|
/// 进度值设定
|
/// </summary>
|
/// <param name="value">Value.</param>
|
/// <param name="text">附加值</param>
|
public static void SetValue(decimal value, string text)
|
{
|
m_value += value;
|
int value2 = (int)((m_value / Max) * 100);
|
if (value2 > 100)
|
{
|
value2 = 100;
|
}
|
|
SetValue(value2.ToString() + "% " + text);
|
}
|
|
/// <summary>
|
/// 进度值设定(文本)
|
/// </summary>
|
/// <param name="text">Text.</param>
|
public static void SetValue(string text)
|
{
|
if (notSetValue == true)
|
{
|
return;
|
}
|
HdlThreadLogic.Current.RunMain(() =>
|
{
|
//loading.Text = text;
|
Common.CommonPage.Loading.Text = text + appendText;
|
}, ShowErrorMode.NO);
|
}
|
|
/// <summary>
|
/// 设定进度值最大的值(分母)
|
/// </summary>
|
/// <param name="maxValue">设定进度值最大的值(分母)</param>
|
public static void SetMaxValue(decimal maxValue)
|
{
|
Max = maxValue;
|
}
|
|
/// <summary>
|
/// 强制设置不再显示进度条,直到进度条可以关闭或者再次设置
|
/// </summary>
|
/// <param name="i_notShow">是否强制不显示</param>
|
public static void SetShowBarFlag(bool i_notShow)
|
{
|
notShow = i_notShow;
|
}
|
|
/// <summary>
|
/// 强制设置不再关闭进度条,直到进度条可以关闭或者再次设置
|
/// </summary>
|
/// <param name="i_notClose">是否强制不关闭</param>
|
public static void SetCloseBarFlag(bool i_notClose)
|
{
|
notClose = i_notClose;
|
}
|
|
/// <summary>
|
/// 强制设置不变更进度条的值,直到进度条可以关闭或者再次设置
|
/// </summary>
|
/// <param name="i_notSetvalue">是否强制不变更进度条的值</param>
|
public static void SetSetValueFlag(bool i_notSetvalue)
|
{
|
notSetValue = i_notSetvalue;
|
}
|
|
/// <summary>
|
/// 在进度条里面附加自定义文本
|
/// </summary>
|
/// <param name="i_text"></param>
|
public static void SetAppendText(string i_text)
|
{
|
appendText = i_text;
|
if (appendText != string.Empty)
|
{
|
//多加一个空格
|
appendText = " " + appendText;
|
}
|
}
|
}
|
}
|