WPF üzerinde VB.net ile Timer işlemleri

Uzun süredir WinForms ve ASP.net aracılığı ile bir şeyler yazmaya, geliştirmeye çalışırken baktım olacak gibi değil WPF de öğrenmeliyim dedim. Çünkü artık Windows 8 çıktı ve MetroStyle uygulamaları yazabilmek için wpf bilmenin gerekliliğini gördüm.

Bu noktaya kadar her şey iyi güzel gidiyordu, ama o da ne !!

e bu WPF denilen yapının içinde alışkın olduğumuz componentler yok 🙂 Örnek olarak formumuza bir TIMER ekleyip bunun sayesinde birşeyler yapmak istesek, microsoft bize yok öyle bir şey diyor. Peki ama nasıl yapmalıyız?

bununla ilgili olarak internet üzerinde belki bir çok c# uygulaması bulabilirsiniz fakat microsoft’un VS.net 2012 kadar olan süreçte üvey evlat olarak gördüğü VB.net fanatiği olarak bunun bir örneğini görememiştim.

söz gelimi ilk uygulamamız metrostyle bir windows 8 uygulaması olsun ve ekranın ortasında beliren ProgressRing 5 sn sonra yok olup ekrana “Tüm modüller Yüklendi” şeklinde bir uyarı gelsin.

ilk önce sayfamıza 1 tane progressring ve bir tane de textblock ekleyelim.

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<ProgressRing HorizontalAlignment="center" VerticalAlignment="center" Height="75" Width="85" x:Name="progresimiz"/>
<TextBlock x:Name="mesajimiz" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="Collapsed" Text="Tüm modüller Yüklendi!" FontSize="22" Margin="510,459,601,282" />
</Grid>

 

 

yukarıda da görebileceğiniz gibi textblock görünürlüğünü Visibility=”Collapsed” ile gizli hale getirdik. Çünkü sayfa açıldığında bu mesajımızın görülmesini istemiyoruz.

 Dim Timer As DispatcherTimer = New DispatcherTimer

 

 

ile Timer adında bir DispatcherTimer tanımlıyoruz.

Public Sub New()
Timer.Interval = TimeSpan.FromSeconds(5) 'Timer süresi olarak 5 saniye belirleniyor

AddHandler Timer.Tick, AddressOf timertick 'Timer.Tick handler tetiklendiğinde timertick alt programcığı çağrılsın tanımı yapılıyor.

Timer.Start() 'Timer isimli zamanlayıcı başlatılıyor.

 

 

Şimdi de sırada timertick alt programcığımız var.

Private Sub timertick()
        Timer.Stop()
        Progresimiz.IsActive = False
        Mesajimiz.Visibility = Windows.UI.Xaml.Visibility.Visible
    End Sub

 

Gördüğünüz gibi önce timer zamanlayıcısı durduruluyor. Sonrasında ise mesajımız görülebilir duruma getiriliyor.

İşte bu kadar umarım yardımcı olabilmiştir.