如何将进度条绑定到间隔?

时间:2014-11-27 18:37:22

标签: c# progress-bar windows-phone-8.1 counter

我在我的应用中添加了一个确定的进度条,这是一个间歇训练应用。 计时器启动一段设定的秒数,然后停止设定的秒数,然后重复这个序列一定数量的轮次,非常类似于应用程序:

http://www.windowsphone.com/en-ie/store/app/simple-training-timer/2f946ba9-ffd9-4f98-85a5-c67f97868ebe

这是我的代码中进度条的声明:

ProgressBar  IsIndeterminate="False" x:Name="overallProgressBar" Maximum="100"  Width="200" Margin="114,214,142,288" FontWeight="Bold" Style="{StaticResource ProgressBarStyle2}"

这就是我调用的方法设置进度条在timer_tick中递增:

        void myTimer_Tick(object sender, EventArgs e)
        {


                // update the textblock on the display
                // with hh, mm, ss, ms
                ms = myStopwatch.ElapsedMilliseconds;

                ss = ms / 1000;
                ms = ms % 1000;

                mm = ss / 60;
                ss = ss % 60;

                hh = mm / 60;
                mm = mm % 60;

                overallProgressBar.Value = ms;


                tblDisplay.Text = hh.ToString("00") + " : " +
                                  mm.ToString("00") + " : " +
                                  ss.ToString("00") + " : " +
                                  ms.ToString("000");



                //method to trigger timer stop and start at user input intervals
                intervalTrigger(ref workTm, ref restTm);


        }

目前,此代码只运行进度条,在大约5秒后完成,这与正在输入的轮次不同步。

我正在尝试设置我的进度条以按顺序运行这些操作,有人知道我将如何实现这一目标吗?

2 个答案:

答案 0 :(得分:2)

ProgressBar应该完全代表什么?你的问题不是很清楚。

假设名为TimeSpan的{​​{1}}字段定义workTimeSpan测量的间隔的持续时间,并假设您要在该间隔内显示进度:

ProgressBar

WPF中更好的版本会将控件值绑定到属性,但上述方法可以正常工作。

如果void myTimer_Tick(object sender, EventArgs e) { overallProgressBar.Value = myStopwatch.ElapsedMilliseconds / workTimeSpan.TotalMilliseconds * 100; // update the textblock on the display // with hh, mm, ss, ms tblDisplay.Text = myStopwatch.Elapsed.ToString("hh:mm:ss.fff"); //method to trigger timer stop and start at user input intervals intervalTrigger(ref workTm, ref restTm); } 应该代表其他内容,那么请具体说明它应该代表什么,代码中的信息在哪里,以及它是如何更新的。见https://stackoverflow.com/help/mcve

答案 1 :(得分:1)

估算每个操作的完成百分比,然后在每次任务完成时将进度条调整为完成百分比的函数。

一般来说,您无法通过使用计时器来创建确定的进度条,因为您无法知道您的操作实际需要多长时间。