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