Abdurrahman KÖKEN | BLOG

just a developer... | Microsoft Student Partner

WPF 4.0-LayoutRounding Özelliği

Ocak 02
by Abdurrahman Köken 2. Ocak 2010 15:14

Bugün yeni yılın ilk makalesi olarak sizlerle WPF 4 ile gelen yeni bir property olan LayoutRounding özelliğinden bahsetmek istiyorum.Silverlight ile kod yazanların yakından aşina olduğu bu özelliği aşağıdaki örnek kod üzerinden inceleyelim.

<Border Width="150" Height="120" BorderThickness="10" BorderBrush="Red"/>

<Border Width="110" Height="80" BorderThickness="10" BorderBrush="Green"/>

<Border Width="70" Height="40" BorderThickness="10" BorderBrush="Blue"/>

 <Border Width="150" Height="120" BorderThickness="10" BorderBrush="Red" UseLayoutRounding="True"/>

<Border Width="110" Height="80" BorderThickness="10" BorderBrush="Green" UseLayoutRounding="True"/>

<Border Width="70" Height="40" BorderThickness="10" BorderBrush="Blue" UseLayoutRounding="True"/> 

Yukarıdaki kod parçası ile içiçe geçmiş dikdörtgenlerden oluşan border lar bulunmaktadır.Tek fark ikincisinde UseLayoutRounding property’sidir.Bu property’i true olarak atayıp uygulamamızı çalıştırdığımızda ilk border’ın biraz blur şekilde göründüğünü ikincisinin ise daha keskin çizgilere sahip olduğunu farkedeceksiniz.Varsayılan olarak bu özellik false gelmektedir.Uygulamayı çalıştırdığımızdaki ekran görüntüsü şu şekilde olacaktır.

 

WPF 4.0-SelectionBrush ve CaretBrush Özellikleri

Aralık 14
by Abdurrahman Köken 14. Aralık 2009 23:05

Bugün WPF 4’ün yeniliklerinden biri olan caret ve selection renginin nasıl değiştirilebildiğinden bahsetmek istiyorum.WPF 4  ile bunları sağlamak için iki tane özellik gelmektedir.

·  SelectionBrush

·  CaretBrush

Bu özelliklerin kullanımını bir örnekte görelim

<StackPanel Orientation="Horizontal">

  <TextBox SelectionBrush="Yellow" SelectionOpacity="0.5" Text="SelectionBrush Color Yellow" CaretBrush="Blue"/>

  <TextBox SelectionBrush="Red" SelectionOpacity="0.5" Text="SelectionBrush Color Red" CaretBrush="DarkMagenta"/>

</StackPanel>

 

Uygulamayı çalıştırıp yazılı metni seçtiğimizde aşağıdaki gibi bir görüntüyle karşılaşırız.

 

Örnekte iki property’nin de nasıl kullanıldığı gösterilmektedir.Bu iki property’lerin yanı sıra bir de SelectionOpacity isimli  bir property’miz bulunmaktadır.Bu da seçim renginin saydamlığını ayarlamak için kullanılmaktadır.(Varsayılan olarak değeri 0.6’dır).Bu propertyleri sadece selection ve caret a izin veren kontrollerde kullanılabilmektedir.

Tags:

WPF

WPF 4.0-Text Formatting Mode Özelliği

Aralık 09
by Abdurrahman Köken 9. Aralık 2009 02:39

WPF 3.0 çıktığından beri göze çarpan ve WPF 4.0 ile düzeltilen bir sorundan bahsetmek istiyorum.WPF’in önceki versiyonlarında  text’lerin font büyüklüğünü küçülttüğümüzde güzel bir şekilde render edilemediğini farketmişsinizdir.WPF 4.0 ile bu sorun da giderilmiş.Bunun için TextFormattingMode adında yeni bir Property eklenmiş.Varsayılan olarak bu özellik “Ideal “ olarak gelmektedir.Eğer küçük font kullanıyorsanız bu özelliği “Display” olarak değiştirin ve farkı görün. 

<StackPanel>

 <TextBox TextOptions.TextFormattingMode="Ideal" FontSize="12">DENEME</TextBox>   

 <TextBox TextOptions.TextFormattingMode="Display" FontSize="12">DENEME</TextBox>   

 <Label TextOptions.TextFormattingMode="Ideal" FontSize="15">DENEME</Label>   

 <Label TextOptions.TextFormattingMode="Display" FontSize="15">DENEME</Label> 

</StackPanel> 

Tags:

WPF

WPF Uygulamalarına Jumplist Ekleme

Kasım 20
by Abdurrahman Köken 20. Kasım 2009 00:56

Windows 7 ile gelen bir özellik olan Jumlist’i hepiniz duymuşsunuzdur.Gerçekten işimizi kolaylaştırmayı hedefleyen hoş bir özellik aslına bakarsanız benim favorilerim arasında:)Mesele Media Player ikonuna sağ tıkladığımızda en son dinlediğimiz şarkıları göstermesi,aynı ikonun üzerine gelince play/pause butonlarının olması ya da Visual Studio’da sağ tıkladığımızda en son yaptığımız projelerin listesini Jumplist sayesinde görmekteyiz.

   

Ben de bugün WPF uygulamalarına nasıl jumplist özelliği eklenebildiğinden bahsedeceğim.Tabii bu uygulamayı yapabilmek için en başta Windows 7 yüklü bir sistem ve .NET Framework 4.0 gerekmektedir.Bunların sistemde yüklü olduğunu varsayarak demoya başlıyorum.Kısaca yapacağımız demodan bahsedeyim.Uygulamamızı çalıştırdığımızda taskbarda çıkan ikona sağ tıkladığımızda notepad ve MSN Messenger programlarımızı açabileceğimiz iki tane task koyacağız.Ön izleme alanında ise uygulamamızdaki TextBox’ta seçili alanı kopyalayan bir task oluşturacağız.

     JumpList jumplist = new JumpList(); 

         JumpList.SetJumpList(Application.Current,jumplist);

         JumpTask task = new JumpTask(); 

         task.Title = "NotePad";

         task.CustomCategory = "Programlar";

         task.ApplicationPath = "notepad.exe";

         task.IconResourcePath = AppDomain.CurrentDomain.BaseDirectory + "Images\\Icon.ico"; 

Uygulamamızın Load olduğunda önce bir JumpList oluşturuyoruz ve uygulamamıza entegre olması için SetJumpList metodunu kullanıyoruz.Ardından bir JumpTask yaratarak task tanımlıyoruz ve bu task ile ilgili bilgileri atıyoruz.ApplicationPath özelliği bizim çalıştırmak istediğimiz uygulamanın yoludur.CustomCategory  de eğer farklı işlemler gerçekleştiren taskler varsa bunları gruplar halinde gösterir.Şimdi bu jumplisti uygulamamız gerekmektedir.Bunu da aşağıdaki gibi yapabiliriz.

       jumplist.JumpItems.Add(task);

       jumplist.Apply();

Ön izleme kısmını ise XAML tarafında yapmaktayız.Formumuza bir textbox ekledikten sonra taskbar şu şekilde oluşturulmaktadır.

<Window.TaskbarItemInfo>

 <TaskbarItemInfo Overlay="Images/win7.jpg"> 

  <TaskbarItemInfo.ThumbButtonInfos>

   <ThumbButtonInfo Command="Copy"   CommandTarget="{Binding ElementName=textbox1}"  Description="Textbox'daki seçili alanı kopyalar"   DismissWhenClicked="False"                        ImageSource="Images/copy.png" />

  </TaskbarItemInfo.ThumbButtonInfos>

 </TaskbarItemInfo>

</Window.TaskbarItemInfo> 

Overlay ikon uygulama çalıştığında uygulamamızın taskbarda görünen ikonunun sağ tarafında görünen resimdir.Ön izleme de çıkan butonları da <TaskbarItemInfo.ThumbButtonInfos/> tagını kullanarak oluşturmaktayız.DismissWhenClicked property’si ise ön izleme alanındaki butona tıklandığında ön izleme ekranının kapanıp kapanmamasını ayarlamamızı sağlar.Uygulamayı çalıştırdığımızda aşağıdaki gibi bir screenshot ile karşılaşacağız. 

Artık WPF uygulamalarımıza API’leri kullanarak kolayca jumplist özelliği ekleyebilirsiniz.Demo uygulamayı aşağıdan indirebilirsiniz.

JumpListApp.zip (2,96 mb)

WPF 4.0 İle Gelen Yenilikler

Kasım 02
by Abdurrahman Köken 2. Kasım 2009 14:58

Visual Studio 2010 release olduğunda WPF 4.0 ile beraber pek çok yeniliklerle karşı karşıya kalacağız.Bunlardan bazılarına bu yazımda değineceğim.En önemli gelişmelerden birisi Windows 7 entegrasyonu.Bu sayede özellikle multi-touch uygulamalar geliştirirken third party bileşenler kullanmamıza gerek kalmadan framework içine entegre edilmiş metodlarla çok daha rahat bir şekilde uygulamalar geliştirebileceğiz.Bu gelişmenin yanı sıra bir takım yeni kontroller ve grafiksel anlamda da yeni gelişmeler var.

Windows 7 Multitouch Desteği:

WPF 4.0 multi-touch girişi ve manipulasyon işlemlerini desteklemekle kalmayıp Windows 7 deki bir çok özelliği de sağlamaktadır.Yeni özellikler aşağıdaki gibidir:

  • Multi-touch Manipulation, Inertia (Pan, Zoom, Rotate) events on UIElement
  • Raw multi-touch events (Up, Move, Down) on UIElement, UIElement3D and ContentElement
  • Multiple capture supporting multiple active controls
  • ScrollViewer enhancement to support multi-touch panning
  • Touch device extensibility
  • Future Surface SDK compatibility

Windows 7 Shell Entegrasyonu:

WPF 4.0 ile gelen bir diğer yeni özellik ise Shell entegrasyonudur.Bu sayede WPF geliştiricileri uygulamalarında Windows 7 özelliklerini kullanabilirler.Shell özellikleri geliştiricilere daha zengin bir kullanıcı deneyimi sağlamaktadır.Bunlardan bazıları:

  • Jump List fonksiyonelliği
  • Taskbar Özellikleri (Progress bar,Overlay Icon,Thumbnail Buton vs.)

 

Yeni Kontroller:

WPF 4 ile bir çok yeni özelliğin yanı sıra yeni kontroller de gelecek.Bunlardan en çok bekleneni eminim DataGrid’dirJDiğer kontroller  DatePicker ve Calendar kontrolleri.Tabii ki kontroller bununla sınırlı değil.Bu kontrollerin  yanında bir de Bag O’Tricks adında  sekiz tane kontrol içeren bir koleksiyon bulunmaktadır.Bu koleksiyon şu kontrolleri içerir: AnimatingTilePanel, ColorPicker, InfoTextBox, ListPager, NumericUpDown, Reveal, TransitionsPresenter, TreeMapPanel.

Windows 7&Office Ribbon Kontrolü:

Yeni bir WPF kontrolü de Ribbon kontrolüdür.Bu kontrole pek de yabancı değiliz aslında.Windows 7’de Paint açtığınızdaen üstte gördüğünüz zengin bir toolbar göze çarpacaktır.Bu kontrol sayesinde kısa ve kolay bir biçimde işlemler gerçekleştirilebilmektedir.Şu an için WPF Ribbon kontrolü CTP aşamasındadır.Eğer isterseniz kısıtlı özellikleri olan kontrolü buradan edinebilirsiniz.WPF 4.0 release olduğunda bu özelliklerin hepsi olacaktır.Beklemekte fayda var:)

Cached  Composition:

Uygulamalarda gözle görülür bir performans elde etmek istiyorsanız WPF 4 ile gelen Cached Composition özelliğini kullanmanız gerekir.Bu özellik uygulamalara interaktif  kontrolleri,geometrik şekilleri vs. cache’lemize izin verir.Cache Composition ‘ın performansa etkisi büyüktür  çünkü GPU kullanılır.Bu da CPU’nun yükünü oldukça hafifletir.

Pixel Shader 3 Desteği:

.Net Framework 3.5 SP1 ile beraber hayatımıza giren Pixel  Shader efektlerini hepimiz biliyoruz.WPF 4  popüler shader efektlerini kullanmamızın  yanı sıra artık uygulamalarımıza PS 3.0 kullanarak efektler yazmamıza izin vermektedir.

Animation Easing Function:

WPF’ in önceki versiyonlarında da ayrık, lineer ve spline animasyonlar desteklenmekteydi.WPF 4.0 ise uygulama geliştiricilere animasyonları kullanarak akıcı behavior’lar oluşturabilmelerini sağlayan  Easing  Function’lara yeni bir konsep kazandırdı.Bu sayısız şekilde kullanılabilir.Örneğin elastik bir behavior oluşturmak ya da bi animasyona bekleme eklemek için.Tasarım araçlarında dairesel,üstel,elastik gibi easing function’lar bulunmaktadır.Genişletilebilir tasarım ayrıca geliştiricilere kendi easing functionlarını oluşturabilmelerine izin vermektedir.

WPF 4.0 ile gelecek olan yeniliklerden bazılarına değinmiş olduk. Sonraki makalelerimde diğer yeniliklere de göz atıyor olacağız.

 

Tags: ,

WPF

Abdurrahman Köken-Recent Post