Makale Özeti

Bu yazımızda Windows 7 ile beraber gelen Taskbar özelliklerinden biri olan Taskbar Toolbar özelliğini inceleyerek kendi uygulamalarımıza nasıl bu özelliği ekleyebileceğimize göz atıyoruz.

Makale

Uygulamalarımız için Windows 7 ile beraber gelen Taskbar özelliklerinden biri de Taskbar içerisine uygulamaya özel Toolbar yerleştirebiliyor olmak. Kullanıcıların uygulamalarımızla ilgili en sık kullandıkları özelliklere hızlı bir şekilde ulaşılabilmesini sağlayan bu mini toolbarları yaratmak Taskbar API Wrapper'ları ile beraber çok kolay bir hal alıyor.

Taskbar Toolbar'ları ile ilgili canlı bir örnek görmek için hemen Windows7 içerisinde Media Player'a başvurabiliriz. Media Player içerisinde oynattığınız şarkılar veya videolar arasında hızlıca geçiş yapmanızı sağlayacak olan mini bir toolbar otomatik olarak Taskbar'da Preview panelinde gözüküyor.

Taskbar'da minik bir toolbar!
Taskbar'da minik bir toolbar!

Bu minik toolbarlar farklı işlemler için kullanılabilir. Özellikle hemen toolbarın üstünde de uygulamanın Preview kısmının bulunduğunu düşünürsek ilginç bir manzara oluşturmak da mümkün. Örneğin toolbardaki düğmelere göre uygulama kendi genelinde görsel değişiklikler yaparak kullanıcıyı bilgilendirirse otomatik olarak bu değişiklikler toolbar üzerindeki preview alanına da yansıyacağı için bu ufacık preview ekranından kullanıcıya ciddi bir işlevsellik aktarılabilir.

Peki biz nasıl yapacağız?

Windows7 içerisinde Taskbar Toolbars özelliğinden faydalanabilmemiz için ilk olarak WindowsAPICodePack ile beraber gelen Microsoft.WindowsAPICodePack.dll ve Microsoft.WindowsAPICodePack.Shell.dll'i referans olarak projemize eklemeliyiz. Yarattığımız bu yeni WPF projesine ayrıca System.Drawing'i de referans alırsak ileriki adımlarda sorun yaşamayız. Yapacağımız örnekte Toolbar içerisinde basit bir düğme ekleyerek görselliğini değiştirecek ve düğmeye basıldığında bir event-listener ile durumdan haberdar olacağız.

[VB]

    Private Sub Window1_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded

        Dim ikon = New System.Drawing.Icon(Application.GetResourceStream(New Uri("dvd_rom.ico", UriKind.RelativeOrAbsolute)).Stream)

        Dim dugme As New ThumbnailToolbarButton(ikon, "DVD'den müzik çal!")

        AddHandler dugme.Click, AddressOf dugme_Click

        TaskbarManager.Instance.ThumbnailToolbars.AddButtons(New WindowInteropHelper(Application.Current.MainWindow).Handle, dugme)

    End Sub

 

    Private Sub dugme_Click(ByVal sender As Object, ByVal e As ThumbnailButtonClickedEventArgs)

        MessageBox.Show("OK")

    End Sub

[C#]

        void Window1_Loaded(object sender, RoutedEventArgs e)

        {

            var ikon = new System.Drawing.Icon(Application.GetResourceStream(new Uri("dvd_rom.ico", UriKind.RelativeOrAbsolute)).Stream);

            var dugme = new ThumbnailToolbarButton(ikon, "DVD'den müzik çal!");

            dugme.Click += new EventHandler<ThumbnailButtonClickedEventArgs>(dugme_Click);

            TaskbarManager.Instance.ThumbnailToolbars.AddButtons(new WindowInteropHelper(Application.Current.MainWindow).Handle, dugme);

        }

 

        void dugme_Click(object sender, ThumbnailButtonClickedEventArgs e)

        {

            MessageBox.Show("OK");

        }

Kodumuz içerisinde uygulamamız ekrana geldiği gibi projemi içerisinde bulunan dvd_rom.ico dosyasının bir ikon değişkenine yüklüyoruz. Sonrasında Toolbar'ımıza eklenmek üzere ThumbnailToolbarButton nesnesi yaratmamız gerekiyor. ThumbnailToolbarButton yaratırken söz konusu sınıfın constructor'ı bizden bir ikon ve bir de Tooltip için açıklama metni istiyor. Bir sonraki adımda yarattığımız bu özel düğmenin Click event'ını da ayrı bir event-listener'a bağlıyoruz.

Son olarak geriye sadece bu düğmeyi Toolbar'ımıza eklemek kalıyor. Bunun için ThumbnailToolbars sınıfı altındaki AddButtons metodunu kullanabiliriz. Metodumuz ilk olarak toolbarın hangi pencerenin Preview'una ekleneceğini anlayabilmek için bizden Handle istiyor, sonraki parametrelerde sıra ile yarattığımız tüm düğmeleri parametre olarak geçebiliyoruz. Biz örneğimizde sadece bir tek düğme kullandık fakat siz çok daha fazla ve farklı düğmeler kullanabilirsiniz.

Tek tıkla DVD'den müzik çalabilecek bir uygulama?
Tek tıkla DVD'den müzik çalabilecek bir uygulama?

Düğmeye basıldığında daha önce eklemiş olduğumuz dugme_Click event listener'ı çalışacak. Böylece istediğimiz işlemi rahatlıkla yapabileceğiz. Artık örneğinizi çalıştırıp test edebilirsiniz.

Hepinize kolay gelsin.

Örnek uygulama'ya ait kaynak kodlar.