【问题标题】:Bind DispatcherTimer to Progress Bar XAML WP 8.1将 DispatcherTimer 绑定到进度条 XAML WP 8.1
【发布时间】:2015-06-24 21:03:53
【问题描述】:

我正在使用 WP 8.1 应用程序(非 SL)并拥有以下 XAML 代码:

<Page>
    <Grid>
        <ProgressBar x:Name="TimeBar" IsIndeterminate="False" Maximum="200" Value="30" Height="10" Width="300"/>
    </Grid>
</Page>

这给了我以下信息:

我想绑定一个定时器对象,这样随着时间的流逝,进度条会随之移动,直到定时器停止(达到1分钟)。

我有以下代码,但它似乎不起作用。

namespace BarWithTimer
{
    public sealed partial class MainPage : Page
    {
        public DispatcherTimer Timer;

        public MainPage()
        {
            InitializeComponent();
            Timer = new DispatcherTimer();
            Timer.Tick += TimerOnTick;
            Timer.Interval = new TimeSpan(0, 1, 0);
            Timer.Start();
            NavigationCacheMode = NavigationCacheMode.Required;
        }

        private void TimerOnTick(object sender, object o)
        {
            TimeBar.Value += 10;
        }
    }
}

【问题讨论】:

  • 你到底想做什么?您当前的代码可以正常工作,每分钟更新一次进度条,因为您设置的时间间隔(1 分钟)控制调用 Tick 处理程序的频率。
  • 该死的,谢谢约翰,我以为我在秒,而不是分钟。
  • 也就是说,您可能应该使用故事板而不是 DispatcherTimer 来平滑地为进度条设置动画
  • 怎么样?请问有什么例子吗?

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


【解决方案1】:

按照 Jon 的建议,我所要做的就是修正计时器的时间间隔。

Timer.Interval = new TimeSpan(0, 0, 0, 0, 50);

现在每 50 毫秒调用一次 Tick 处理程序,我可以看到我的进度条在移动!

谢谢乔恩。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多