WPF teknolojisinde form biçim ve düzenlerini de değiştirmemiz mümkündür. Örneğin şekilli bir pencere yapalım.

Bunun için yapacağımız örnek için de Project menüsünden Add Window diyerek yeni pencere ekleyelim ve ana penceremiz içerisine bir buton ekleyerek şu kodu yazalım:

 

Class Window1

    Private Sub cmdyenipencere_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles cmdyenipencere.Click

        Dim yenipencere As New Window2

        yenipencere.Show()

    End Sub

End Class

 

Window2 seçili iken properties penceresinden şu değişiklikleri yapalım:

WindowsStyle özelliğini None yaparak pencere üzerindeki tam ekran yapma, ekranı kaplama ve simge durumuna küçültme düğmelerinin temizlenmesini sağlayalım.

AllowsTransparency özelliğini true yaparak penceremizin saydam hale gelmesini sağlayalım.

 

Daha sonra projemize formumuzun şeklini belirleyecek herhangi bir resim dosyasını Add>New Item seçenekleri ile ekleyerek projemize dâhil edelim.

Window2’nin XAML kod penceresine eklediğimiz resmin formun zemini hale gelmesini sağlamak için şu kodu ekleyelim:

<Window.Background>

        <ImageBrush ImageSource="10.png"></ImageBrush>

</Window.Background> 

 

Ayrıca Window2 üzerine de bir buton ekleyelim. Butonumuza basıldığında pencereyi kapatsın. Kodu şu şekilde olacak:

Private Sub cmdgeri_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles cmdgeri.Click

        Me.Close()

End Sub

 

Sonuç olarak Window2’nin tüm XAML kodu şu şekilde olacak:

 

<Window x:Class="Window2"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Title="Window2" Height="300" Width="300" WindowStyle="None" AllowsTransparency="True">

    <Window.Background>

        <ImageBrush ImageSource="10.png"></ImageBrush>

    </Window.Background> 

    <Grid>

        <Button Margin="99,116,104,123" Name="cmdgeri" Background="Yellow">Geri</Button>

    </Grid>

</Window>

 

VB.NET kodu ise şu şekilde:

Partial Public Class Window2

 

    Private Sub cmdgeri_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles cmdgeri.Click

        Me.Close()

    End Sub

End Class

 

Projemizi çalıştırıp pencere1’den pencere2’yi çağırdığımızda pencere2’nin şu şekilde olduğunu görürüz:

WPF Form

Etiketler : VB.Net WPF
Kategoriler : VB.Net WPF/WCF
Yorumlar : 1 Yorum Yorum Yaz

Projemiz yüklenirken çalıştırmak istediğimiz bir kodu Application.xaml  dosyası içerisinde startup olayına yazarız. Bunun için StartupUri="Window1.xaml" içerisinde StartupUri="Window1.xaml" kodunu bulup bu kodun hemen arkasında iken boşluk tuşuna basalım.   Intellisense desteği sayesinde biz boşluk tuşuna basar basmaz koda ekleyebileceğimiz olaylar ve metodlar burada listelenecektir.

WPF Intellisense

Biz burada Startup olayını seçeceğiz. Startup olayını yazdığımızda event handler’in aktifleştiğini görürüz. Tab tuşuna basarak ya da fare ile event handler üzerine tıklayarak olay ile ilgili vb.net kodunun otomatik olarak yazılmasını sağlarız.

WPF Event Handler

Üstteki resimde görülen event handler üzerinde işlem yapıldıktan sonra Application.xaml.vb dosyası içerisine aşağıdaki kod otomatik olarak yazılacaktır.

Private Sub Application_Startup(ByVal sender As System.Object, ByVal e As System.Windows.StartupEventArgs)

 

End Sub

Biz örneğin startup olayında bir msgbox ile bir mesaj görüntületelim.

Class Application

    ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException

    ' can be handled in this file.  

    Private Sub Application_Startup(ByVal sender As System.Object, ByVal e As System.Windows.StartupEventArgs)

        MsgBox("Güzel gören güzel düşünür. Güzel düşünen hayatından lezzet alır.")

    End Sub

End Class

 

Projemizi çalıştırdığımızda ilk olarak mesaj penceresi ile belirtilen mesaj ekrana gelecektir.

 

Proje sonlanırken bir kod çalıştırmak için ise Application. xaml dosyası içerisinde yukarıdaki işlemde yaptığımız startup olayını eklediğimiz kısma Exit="Application_Exit" olayını eklemeliyiz.

Çıkış için de bir mesaj penceresi görüntületelim:

 

Private Sub Application_Exit(ByVal sender As System.Object, ByVal e As System.Windows.ExitEventArgs)

        MsgBox("Hayırlı günler")

End Sub

 

Eğer işletim sistemi tarafından LogOff ,Windows Shutdown, Restart ve Hibernate  olaylarından biri gerçekleştirilirse SessionEnding metodu tetiklenir. Bu olayları Application nesnesinin SessionEnding metodu içerisinde kodlayabiliriz.

Uygulamamızı bilinçli olarak sonlandırmak için Application sınıfının Shutdown metodu kullanılabilir. Uygulamamızın içerisindeki ShutDown metodunun hangi durumlarda otomatik olarak çalışacağı ShutdownMode özelliği yardımıyla değiştirilebilir. ShutdownMode özelliği

-OnLastWindowClose

-OnMainWindowClose

-OnExplicitShutDown

şeklinde 3 değer alır.

-OnLastWindowClose: Eğer projemizde birden fazla pencere varsa son pencere kapatıldığında uygulama sonlanır.

-OnMainWindowClose: Ana pencere kapatıldığında uygulama sonlanır.

-OnExplicitShutDown: Uygulamanın kapatılması kullanıcıya bağlıdır.

 ReasonSessionEnding özelliği ise Logoff veya Shutdown değerlerini alır. SessionEndingEventArgs’ ın bir diğer özelliği olan Cancel özelliğine atanan değere göre de Shutdown veya Logoff’ dan vazgeçilmesi sağlanabilir.

 

Öncelikle Application.xaml dosyası içerisine SessionEnding="Application_SessionEnding" olayını ekleyelim.   

Application.xaml.vb dosyası içerisine ise şu kodu yazalım:

 

Private Sub Application_SessionEnding(ByVal sender As System.Object, ByVal e As System.Windows.SessionEndingCancelEventArgs)

        Dim soru As MessageBoxResult = MessageBox.Show("Bilgisayar " + e.ReasonSessionEnding.ToString() + " nedeniyle kapatılıyor. İptal etmek ister misiniz?", "Kapatma Sorusu", MessageBoxButton.YesNo, MessageBoxImage.Question)

        If soru = MessageBoxResult.No Then e.Cancel = True

End Sub

 Proje Dosyasının linki:

http://www.volkanaktas.com/PrgDosya/wpf/Wpf_formolayları.rar

Etiketler : WPF
Kategoriler : VB.Net WPF/WCF
Yorumlar : 0 Yorum Yorum Yaz

Bir WPF Uygulaması oluşturabilmek için Proje tipi olarak Visual Basic /Windows/WPF Application proje şablonunu seçiyoruz.

Örneğimiz için form üzerine toolbox’dan bir buton nesnesi ekliyoruz. Eklediğimiz butonun ismini “cmdyenipencere”, üzerindeki yazıyı da “Yeni pencere” olarak değiştiriyoruz. Bu işlemi kod yazmadan değiştirmek için properties penceresinden name ve text özelliklerini kullanabileceğimiz gibi XAML kod penceresinden kod yazarak da değiştirebiliriz. Butonumuzun XAML kodu şu şekilde:

 

<Button Height="23" Margin="88,0,115,62" Name="cmdyenipencere" VerticalAlignment="Bottom">Yeni Pencere</Button>

 

VB.NET kodu da şu şekilde olacak:

 

Class Window1

    Private Sub cmdyenipencere_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles cmdyenipencere.Click

        Dim pencere As New Window

        pencere.Width = 300

        pencere.Height = 200

        pencere.Title = "Yeni Pencere"

        pencere.Show()

    End Sub

End Class

 

Project menüsünden Add Window diyerek yeni pencere eklemek de mümkündür. Ana penceremiz içerisine bir buton ekleyerek şu kodu yazalım:

 

Class Window1

    Private Sub cmdyenipencere_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles cmdyenipencere.Click

        Dim yenipencere As New Window2

        yenipencere.Show()

    End Sub

End Class

 

Etiketler : WPF
Kategoriler : WPF/WCF
Yorumlar : 0 Yorum Yorum Yaz
Arama
  Ara
Takvim
<September 2010>
SMTWTFS
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789
Tag Bulutu