چگونه از Timer در WPF استفاده کنیم

Timer در WPF

در این مقاله درباره چگونگی اجرا کردن Timer در WPF با استفاده از DispatchTimer را صحبت خواهیم کرد.برای آشنایی بیشتر با TImer در WPF با من همراه باشید . در این مقاله یک اپلیکیشن WPF ایجاد می کنیم که یک کنترل ListBox داشته باشد و این کنترل هر ثانیه مطابق با زمان فعلی بروز شود. سورس نیز در انتهای مطلب برای دانلود قرار داده شده است …

Timer در WPF

 

Timer در WPF

ایجاد یک DispatchTimer

XAMLاز هیچ یک از ویژگی های timer پشتیبانی نمی کند و WPF زمان سنج کنترل (Timer control) ندارد. DispatchTimer در System.Windows تعریف شده است.از Threading namespace برای اضافه کردن قابلیت های timer به WPF استفاده می شود.

تکه کد زیر یک DispatchTimer object ایجاد می کند.

DispatcherTimer dispatcherTimer = new DispatcherTimer();

تنظیم تیک (Setting Tick) و بازه (Interval)

زمانی که DispatchTimerاز بازه داده شده (given Interval) آغاز شود کنترل کننده رخداد های تیک (Tick) اجرا می شود.

تکه کد زیر تیک و بازه DispatchTimer را تنظیم می کند.

dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
 dispatcherTimer.Interval = new TimeSpan(0, 0, 1); 

آغاز DispatchTimer

روش آغاز DispatchTimer.

    dispatcherTimer.Start();

تکمیل مثال کد

تک کد لیست ۱، یک DispatchTimer ایجاد می کند، رخدادهای Tick و ویژگی Intervalخود را تنظیم می کند و متود آغاز را فرا می خواند. متود آغاز،timer و کنترل کننده رخداد های Tick را تنظیم می کند. در این کد، روی کنترل کننده Tick، یک ListBox control را بروز می کنیم و زمان فعلی را اضافه می کنیم.

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    DispatcherTimer dispatcherTimer = new DispatcherTimer();
    dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
    dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
    dispatcherTimer.Start();
} 
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
    listBox1.Items.Add(DateTime.Now.ToString("HH:mm:ss") );   
    CommandManager.InvalidateRequerySuggested();
    listBox1.Items.MoveCurrentToLast();
    listBox1.SelectedItem = listBox1.Items.CurrentItem;
    listBox1.ScrollIntoView(listBox1.Items.CurrentItem);
}

موفق باشید !

محمد نجفی

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

    علیرضا پاسخ

    سلام و تشکر بابت آموزش خوبتان.
    درصورت امکان این مطلب را جامع و کاربردی تر توضیح دهید.

ما یک پرسشنامه‌ی کوچولو داریم، که قول میدیم وقتتون رو خیلی نمی‌گیره، ولی کلی به ما کمک می‌کنه، چون هم assessment مونه ,و هم شما به ما در این زمینه کمک میکنید.بزن بریم