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.
1 2 3 4 | <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.
1 | Dim Timer As DispatcherTimer = New DispatcherTimer |
ile Timer adında bir DispatcherTimer tanımlıyoruz.
1 2 3 4 5 6 | 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.
1 2 3 4 5 | 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.