WPF图形控件的问题

时间:2009-11-05 03:12:15

标签: wpf gdi

我在GDI +中开发了一个图形控件,并在其中使用了一个计时器..现在我将它转换为 WPF。但当我继续搜索计时器时,WPF中没有计时器......我怎样才能解决这个问题呢?可以选择使用吗?

的问候, rangana。

2 个答案:

答案 0 :(得分:1)

我可以毫无问题地使用System.Threading.Timer

以下是每1秒执行一次的计时器示例:

using System.Threading;

...

TimerCallback timerCallBack = OnTimerCallback;
Timer timer = new Timer(timerCallBack, null, 0, 1000);

...

private void OnTimerCallback(object state)
{
    ...
}

如果要更新计时器中任何与UI相关的元素,则必须使用Dispatcher.BeginInvoke,因为计时器在其自己的线程中运行,并且UI由启动计时器的主线程拥有。这是一个例子:

private void OnTimerCallback(object state)
{
    Dispatcher.BeginInvoke(
        System.Windows.Threading.DispatcherPriority.Normal,
            (ThreadStart) (() => Background = Brushes.Black));
}

答案 1 :(得分:1)

您要查找的计时器是DispatcherTimer http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatchertimer.aspx

但是,如果你计划使用计时器来驱动动画,那么在WPF(只有Google WPF动画)中有更好的方法可以做到这一点。

相关问题