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;
}
}
}
}