WPF中ProgressBar 每0.1秒value+1如何实现?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中ProgressBar 每0.1秒value+1如何实现?相关的知识,希望对你有一定的参考价值。
我想法是这样的
private void pbWroking(ProgressBar pb, int a)
for (double i = pb.Value; i < a; i++)
DateTime dt = DateTime.Now.AddSeconds(0.1);
while (DateTime.Now < dt)
pb.Value += 1;
但实际使用时,虽然运行没问题,但没有及时显示,到了100才显示……求指导
可以开一个线程或者放入定时器中更新pb.Value。 参考技术B 你可以使用DispatcherTimer类做定时功能。
后台你可以这么写:
public MainWindow()
InitializeComponent();
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = new TimeSpan(0,0,1);
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
void timer_Tick(object sender, EventArgs e)
if (pbar.Value <= 100)
pbar.Value += 1;
PS:pbar为前台ProgressBar的Name本回答被提问者采纳
WPF 中ProgressBar的Value属性的值在变化 但进度条不动是怎么回事啊?
UI:
<ProgressBar HorizontalAlignment="Left" Height="11" Margin="10,414,0,0"
VerticalAlignment="Top" Width="559" Maximum="100" Minimum="0"
Name="ProgressBar" Value="Binding ValueMum, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged"
RenderTransformOrigin="0.84,2.2">
ShadeViewModel:
private static int valueMum;
public static int ValueMum
get
return valueMum;
set
if (valueMum != value)
valueMum = value;
ViewModelBase VMB = new ViewModelBase();
VMB.OnPropertyChanged("ValueMum");
// MessageBox.Show("下载进度:" + Maximum);
public void OnValueMum(int text)
ShadeViewModel.ValueMum = text;
只是ProgressBar 的Value出问题
如图 有值 但 UI 的进度条没效果
加两个按钮,手动写死两个后台值,然后逐一点击看看究竟界面变不变。
本回答被提问者采纳以上是关于WPF中ProgressBar 每0.1秒value+1如何实现?的主要内容,如果未能解决你的问题,请参考以下文章