Yeni Başlayanlar İçin WPF Eğitimi
⚡ Akıllı Özet
WPF (Windows Sunum Foundation) 'dir Microsoftzengin yapılar inşa etmeye yönelik çerçevesi Windows Masaüstü uygulamaları. Yeni başlayanlar, XAML, veri bağlama ve donanım hızlandırmalı grafiklerin nasıl bir araya gelerek daha az kodla ölçeklenebilir, görsel açıdan zengin kullanıcı arayüzleri oluşturduğunu öğrenirler.

WPF nedir?
WPF inşa etmek için bir çerçevedir Windows Geliştiricilerin daha az kod karmaşıklığı kullanarak 3D animasyonlar ve zengin renklerle zengin kullanıcı arayüzleri oluşturmasına olanak tanıyan uygulamalar. Modern grafik kartlarının donanım hızlandırmasını kullanan vektör tabanlı bir işleme motorudur, bu da kullanıcı arayüzünü daha hızlı ve yüksek oranda ölçeklenebilir hale getirir. WPF'nin açılımı şöyledir: Windows Sunum Foundation.
WPF, WinForms'a göre bir evrim olarak düşünülebilir. Kullanımı kolay bir grafiksel görüntüleme sistemi sunar. Windows ve kullanıcı arayüzü ile iş mantığı arasında net bir ayrım sunar.
WPF uygulamaları genellikle bağımsız masaüstü programları olarak dağıtılır ve ayrıca diğer uygulamalarda gömülü nesneler olarak da barındırılabilirler.
Neden WPF?
WPF platformunu kullanmanın birçok nedeni vardır. Bunlardan en öne çıkanları şunlardır:
- Çeşitli medya türleriyle uğraşmanız gerekiyorsa kullanabileceğiniz ideal bir platform
- WPF, özelleştirilmiş bir kullanıcı arayüzü oluşturmanıza olanak tanır. Ayrıca, kullanıcı arayüzünün bir bölümünü yüklemeniz gerektiğinde veya XML verilerini bağlamak istediğinizde de size yardımcı olur.
- Üzerine inşa edildiği için geniş .NET sınıf kitaplığından yararlanmanıza olanak tanır .NET teknolojisi
- Çözünürlük bağımsızlığı sayesinde, WPF kullanılarak geliştirilen uygulamalar küçük tablet ekranlarında veya 20 inçlik bir monitörde çalışabilir.
- WPF, WinAPI yerine DirectX üzerine kuruludur. İstemci bilgisayarın grafik sistemini kullandığı için daha yüksek grafik işleme gücü sunar.
- "Masaüstü yayıncılık" kalitesinde sayfa düzeni sağlayan akışlı belge modelini destekler.
- Görünüm ve davranış gevşek bir şekilde birbirine bağlıdır. Bu, tasarımcıların ve geliştiricilerin iki ayrı model üzerinde çalışmasına olanak tanır.
- WPF çerçevesinde, kod ayrıştırmak yerine basit XML belgeleri kullanarak grafiksel olarak araçlar tasarlayabilirsiniz.
- Daha iyi performans için GUI'yi çizerken donanım hızlandırmayı kullanmanıza olanak tanır
Şimdi de bu çerçevenin zaman içinde nasıl geliştiğine bakalım.
WPF'nin Tarihçesi
Windows 1.0, ilk GUI ortamıydı. MicrosoftDOS'un üzerinde bir katman olarak çalışıyordu ve grafikler ile kullanıcı arayüzü için GDI ve USER sistemlerine dayanıyordu.
DirectX, 1995 yılında oyunlar ve diğer grafik tabanlı ortamlar için yüksek performanslı bir grafik sistemi olarak tanıtıldı. Yıllar içinde birçok sürümü yayınlandı ve DirectX 9, yönetilen .NET koduyla kullanılabilen bir kütüphane sağladı.
| WPF sürümü | Çıkış tarihi | .Net Sürümü | Visual Studio Sürümü | Özellikler |
|---|---|---|---|---|
| 3.0 | 2006 | 3.0 | - | İlk sürüm. Ancak WPF geliştirmesi VS 2005 ile yapılabilir. |
| 3.5 | 2007 | 3.5 | 2008'e Karşı | Değişiklikler ve iyileştirmeler: Uygulama modeli, bağlama, kontroller, belgeler, açıklamalar ve 3 boyutlu kullanıcı arayüzü öğeleri. |
| 3.5 SP1 | 2008 | 3.5 SP1 | - | Yerel açılış ekranı desteği. Yeni web tarayıcı kontrolü, DirectX piksel gölgelendirici desteği. |
| 4.0 | 2010 | 4.0 | 2010'e Karşı | Yeni kontroller: Takvim, Veri Tablosu, Tarih Seçici. Çoklu Dokunma ve Manipülasyon desteği. |
| 4.5 | 2012 | 4.5 | 2012'e Karşı | Daha hızlı başlatma, büyük veri kümelerini görüntülerken gelişmiş performans. Veri doğrulama için yeni Ribbon denetimi ve INotifyDataErrorInfo arayüzü. |
| 4.5.1 | 2013 | 4.5.1 | 2013'e Karşı | Performans ve güvenilirlikte ufak iyileştirmeler. |
| 4.5.2 | 2014 | 4.5.2 | NA | Büyük Değişiklik Yok |
| 4.6 | 2015 | 4.6 | 2015'e Karşı | Şeffaf alt pencere desteği HDPI ve Dokunmatik iyileştirmeler |
| 4.8 | 2019 | 4.8 | 2019'e Karşı | Yüksek çözünürlüklü ekran (HDPI) düzeltmeleri ve erişilebilirlik iyileştirmeleri içeren son büyük .NET Framework sürümü. |
| .NET Core 3.0 ve sonrası | 2019-, bu | .NET Core 3.0'dan .NET 10'a | VS 2019/2022 | WPF açık kaynaklı hale geliyor ve modern .NET ile birlikte sunuluyor (uygulamalar aynı kalıyor). Windows-sadece). |
WPF artık .NET'ten ayrı olarak sürümlendirilmiyor. 2019'dan beri modern .NET platformunun açık kaynaklı bir bileşeni olarak sunuluyor ve mevcut sürüm, Kasım 2025'te uzun vadeli destek (LTS) sürümü olarak gelen .NET 10'a dahil.
WPF'nin özellikleri
Aşağıdaki diyagram, WPF'nin temel özelliklerini gruplandırmaktadır ve bu özellikler daha sonra ayrıntılı olarak listelenmiştir.

- Belgeler ve Yazdırma
- Güvenlik, Erişilebilirlik ve Yerelleştirme
- Birlikte Çalışabilirlik Sunar Windows Form kontrolleri
- Direct3D, performansın önemli olduğu grafik uygulamalarında kullanılır
- İşleme için video kartı donanımını kullanır
- Vektör tabanlı grafikler, uygulamanızı kalite kaybı olmadan ölçeklendirmenize olanak tanır.
- WPF, kayan noktalı mantıksal piksel sistemini ve 32 bit ARGB renk sistemini destekler.
- Stilleri ve Kontrol Şablonlarını Yeniden Tanımlayın
- Bileşik yazı tiplerinden uluslararası yazı tipleri oluşturma
- WPF metin oluşturma işlemi ClearType teknolojisinden yararlanır.
- Video belleğinde önceden oluşturulmuş metni önbelleğe alma tekniğini kullanmanızı sağlar
- Her kontrol için kaynak tabanlı yaklaşım
- Sunum zamanlayıcıları WPF tarafından başlatılır ve yönetilir
- Video ve animasyon arasındaki ilişki de desteklenmektedir
- WPF'de stil, görsel sunum için kullanılan içeriğe uygulanması gereken bir dizi özelliktir.
- WPF'deki şablonlar, belgenizin kullanıcı arayüzünü değiştirmenize yardımcı olur.
- Komutlar daha soyuttract ve gevşek bağlantılı olaylar versiyonu
- Komutlar için WPF desteği yazmamız gereken kod miktarını azaltır
Bu WPF'de bir sonraki adım C# öğreticisiBu bölümde WPF'nin temel türleri ve altyapısı hakkında bilgi edineceğiz.
WPF Çekirdek Türleri ve Altyapıları
WPF'deki sınıflar dört farklı türe ayrılır:
- UIElement
- Çerçeve Öğesi
- İçerik Öğesi
- ÇerçeveİçerikÖğesi
Bu sınıflar temel öğe sınıfları olarak bilinir. Kullanıcı arayüzlerini oluşturma modelinin temelini sağlarlar.
WPF kullanıcı arayüzleri, öğe ağacı adı verilen bir ağaç hiyerarşisinde bir araya getirilmiş öğelerden oluşur. Öğe ağacı, kullanıcı arayüzlerini düzenlemenin sezgisel bir yoludur ve güçlü kullanıcı arayüzü hizmetleri elde etmenizi sağlayan yapıdır.
XAML
"XAML" (okunuşu "zammel") olarak da bilinen Genişletilebilir Uygulama İşaretleme Dili, kullanıcı arayüzlerini tanımlamanın bildirimsel bir yoludur.
Basit bir düğmenin XAML tanımı şöyledir:
<Button FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" > Say Hello Guru99</Button>
XAML dilini kullanmanın avantajları:
- XAML, ön uç görünümünü arka uç mantığından ayırır.
- XAML, kullanıcı arayüzlerini temsil etmenin en kolay yöntemidir
- XAML, tasarım araçlarıyla etkili bir şekilde çalışır.
Kontroller
WPF çerçevesi, aşağıdakiler gibi birçok kullanışlı kontrolü destekler:
- Metin gibi kontrolleri düzenlemeBox, Kontrol etmekBox, Radyo düğmesi
- Liste gibi liste kontrolleriBox, Liste Görünümü, Ağaç Görünümü
- Label, WPF ProgressBar, ToolTip gibi kullanıcı bilgileri
- Menü, Düğme ve Araç Çubuğu gibi eylemler
- Border, WPF Image ve Viewbox gibi görünümler
- OpenFileDialog ve PrintDialog gibi yaygın iletişim kutuları
- TabControl, ScrollBar ve Group gibi kapsayıcılar.Box
- DockPanel, StackPanel ve Grid gibi düzenler
- Çerçeve ve Köprü gibi Gezinme
Kontrollerin görünümü, programlamaya gerek kalmadan stiller ve şablonlarla özelleştirilebilir. Uygun bir temel sınıftan yeni bir sınıf türeterek de özel bir kontrol oluşturabilirsiniz.
Görünüm
WPF, uygulamanızın görünümünü özelleştirmeye yönelik bir özellik sağlar. Yazı tipleri, arka planlar vb. gibi şeyler için nesneleri ve değerleri ayarlamanıza olanak tanır.
Stiller özelliği, ürünün tamamı için belirli bir görünümü standartlaştırmanıza olanak tanır. Varsayılan davranışını korurken varsayılan görünümü değiştirmenize olanak tanır.
Veri şablonu, bağlı verilerin varsayılan görselleştirmesini kontrol etmenizi sağlar. Temalar yardımıyla, işletim sisteminin görsel stillerini kolayca uygulayabilirsiniz.
Düzen ve Paneller
Yerleşim (layout), kontrollerin doğru konumlandırılması ve boyutlandırılmasında size yardımcı olur. Kullanıcı için sunumu oluşturma sürecinin bir parçasıdır. WPF çerçevesi, yerleşim sürecini kolaylaştırır ve kullanıcı arayüzü görünümünün daha iyi uyarlanabilirliğini sunar.
Yerleşim altyapısı beş ana sınıf tarafından sunulmaktadır: 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid ve 5) Canvas
Grafik
WPF, gelişmiş bir grafik sistemi sunar:
- WPF, cihazdan bağımsız birimler kullanarak çözünürlük ve cihaz bağımsızlığını mümkün kılar. Her cihazdan bağımsız piksel, sistemin inç başına nokta (DP) ayarıyla otomatik olarak ölçeklenir.
- WPF, float yerine double kullanır ve daha geniş bir renk dizisini destekler
- WPF grafik motoru, mevcut olduğunda grafik donanımından yararlanabilecek şekilde tasarlanmıştır.
Belgeler ve Yazdırma
WPF çerçevesi üç tür belge sunmaktadır:
- Sabit belgeler: Bu belge türü WY'yi desteklerSIWYG'nin sunumu.
- Akış belgeleri: İçeriği pencere boyutu ve cihaz çözünürlüğü gibi çalışma zamanı değişkenlerine göre ayarlamanıza ve yeniden akışlandırmanıza olanak tanır.
- XPS belgeleri: XML tabanlı bir formatta elektronik kağıdın sayfalandırılmış gösterimi. XPS, açık ve standartlaştırılmış bir belge formatıdır.
WPF, uzaktan yazdırma ve yazdırma kuyrukları da dahil olmak üzere yazdırma sistemi üzerinde daha iyi kontrol sağlar. Dahası, XPS belgeleri yazdırma formatına dönüştürülmeden doğrudan yazdırılabilir.
Temel yapı taşlarını ele aldığımıza göre, bu parçaların iç yapıda nasıl bir araya geldiğine bakalım.
WPF Archidoku
WPF, .NET framework'ünün bir parçasıdır. Hem yönetilen hem de yönetilmeyen kod içerir. WPF mimarisinin önemli bileşenleri aşağıdaki şekilde açıklanmıştır:
WPF mimarisinin bileşenleri
- PresentationFrameworkÜst düzey öğeler (denetleyiciler, stiller, düzenler, pencereler vb.) oluşturmanıza yardımcı olur.
- PresentationCoreBu dosya, PresentationFramework.dll'deki tüm kontrollerin ve şekillerin türetildiği UIElement ve Visual gibi temel türleri içerir.
- CLR: Gibi özellikler sunarak geliştirme sürecini verimli hale getirir. bellek yönetimi, hata yönetimi vb.
- Milcore: Milcore, DirectX ile sıkı entegrasyon sunan yönetilmeyen kodun bir parçasıdır.
- DirectX: DirectX, WPF'nin grafiklerini oluşturan düşük seviyeli API'dir. DirectX, sürücülerle etkileşime girer ve içeriği işler.
- Kullanıcı32: Birçok program tarafından yaygın olarak kullanılan temel bir API'dir. Bellek ve işlem ayrımını yönetir. User32, hangi öğenin ekranda nereye yerleştirileceğine karar vermenize yardımcı olur.
- Çekirdek: Giriş, çekirdek modu aygıt sürücüsündeki bir sinyal olarak başlar ve bağlantı kurularak doğru işleme yönlendirilir. Windows çekirdek ve User32.
WPF Veri Bağlama
Veri bağlama, WPF'deki en güçlü kavramlardan biridir. Kontroller ve nesneler arasında değerleri manuel olarak kopyalayan kod yazmak yerine, XAML'de bir bağlantı tanımlarsınız ve WPF her iki tarafı otomatik olarak senkronize eder. Örneğin:
<TextBox Text="{Binding Path=StudentName, Mode=TwoWay}" />
WPF dört bağlama modunu destekler:
- Tek Yön: Kaynak veriler değiştiğinde kontrol mekanizması da güncellenir.
- İki Yönlü: Değişiklikler kontrol ve kaynak arasında her iki yönde de akar.
- Tek Seferlik: Kontrol mekanizması kaynak değerini yalnızca bir kez, yükleme sırasında okur.
- OneWayToSource: Kontrol, değerini kaynağa doğru iter, asla tersi olmaz.
Veri bağlama, profesyonel WPF uygulamaları için en yaygın mimari olan MVVM (Model-View-ViewModel) deseninin de temelini oluşturur; çünkü görünümün XAML'de kalmasına izin verirken, mantığın test edilebilir C# sınıflarında yer almasını sağlar.
💡 İpucu: Veri sınıflarınızda INotifyPropertyChanged arayüzünü uygulayın. Bu arayüz olmadan, kodda özellik değerleri değiştiğinde kullanıcı arayüzü yenilenmeyecektir.
WPF Kurulumu
WPF'yi yüklemek için bu bağlantıya bakın: https://www.guru99.com/download-install-visual-studio.html
Bu WPF uygulama eğitimi serisinin bir sonraki bölümünde, ilk WPF uygulamamızı oluşturacağız.
İlk WPF Uygulamanızı Nasıl Oluşturursunuz?
Bu WPF örneğinde, temel bir WPF uygulaması geliştireceğiz. Öyleyse, aşağıdaki WPF uygulama örneğinde verilen adımları izleyerek basit uygulamaya başlayalım.
) 1 Adım Visual Studio'da Dosya > Yeni > Proje yolunu izleyin.
) 2 Adım Yeni proje penceresinde
- WPF Uygulamasını seçin
- Adı “MyWPF” olarak girin
- Tamam'ı tıklayın.
) 3 Adım Visual Studio varsayılan olarak iki dosya oluşturur
- XAML Dosyası (MainWindow.xaml)
- CS Dosyası (MainWindow.xaml.cs)
MainWindow.xaml'de
- Bir Tasarım Penceresi
- XAML Dosyası
XAML penceresinde varsayılan olarak aşağıdaki etiketler yazılır:
Izgara varsayılan olarak ilk öğedir.
MainWindow.xaml.cs dosyası, XAML tasarım dosyasına karşılık gelen arka plan kodunu içerir:
) 4 Adım Araç kutusunda,
- Metni SürükleyinBox tasarım penceresine öğe
- Bir metinBox tasarım penceresinde görünecek
- Metin için XAML kodunu göreceksiniz.Box katma
) 5 Adım Metni “İlk WPF Programı” olarak değiştirin.
) 6 Adım Başlat Düğmesine tıklayın
) 7 Adım Çıktıda bir pencere göreceksiniz.
Tebrikler! İlk WPF uygulamanızı tasarladınız ve oluşturdunuz. Yeni başlayanlar için bu WPF eğitiminde bir sonraki adımda, WPF ve WinForms arasındaki farkı göreceğiz.
WPF ve WinForms
| WPF | WinFormlar |
|---|---|
| Daha yeni bir çerçeve olduğundan mevcut standartlarla daha uyumludur. | Daha eski olduğundan daha çok denenmiş ve test edilmiştir. |
| Esnek ve özellik bakımından zengin. Kod yazmaya veya kontrol bileşenleri satın almaya gerek kalmadan çok zengin uygulamalar tasarlayabilirsiniz. | Özellik bakımından çok zengin değil. |
| 3'ün geliştiricilerird Parti kontrolleri, geleceğin teknolojisi olan WPF ile uyumluluğa odaklanmıştır. | Ücretsiz olarak satın alabileceğiniz veya alabileceğiniz birçok üçüncü taraf kontrolü vardır. |
| XAML, grafik kullanıcı arayüzünüzü (GUI) kolayca oluşturmanıza ve düzenlemenize olanak tanır. Tasarımcı (XAML) ve programcı (C#, VB.NET, vb.) arasında iş bölümünü mümkün kılar. | In Windows Formlarda tüm kod tek bir yerde yazılır. |
| XAML becerileri, WinUI 3, .NET MAUI ve Avalonia UI gibi daha yeni çerçevelere doğrudan aktarılabilir. | WinForms becerileri esas olarak klasik uygulamalara uygulanır. Windows masaüstü geliştirme. |
| WPF'nin kutu içi kontrol paketi sınırlıdır | Kutudaki kontroller çok güçlü |
WPF ile oluşturulan Uygulama Türleri
- WPF bağımsız uygulamalar için kullanılır. Windows Kurumsal iş kolu araçları, gösterge panelleri, işlem terminalleri ve tasarım yazılımları gibi masaüstü uygulamaları.
- Windows Formlar ve WPF sayfaları aynı uygulamada bir arada bulunabilir
- Sayfa/pencere navigasyonu tarzında uygulamalar geliştirebilirsiniz.
Modern .NET'te WPF
Microsoft WPF, Aralık 2018'de açık kaynaklı hale getirildi ve .NET Core 3.0'dan (2019) bu yana, .NET 10 dahil olmak üzere her modern .NET sürümüyle birlikte sunuldu. Bir uygulamayı modern .NET'e taşımak, daha hızlı başlatma, bağımsız yayınlama yoluyla daha basit dağıtım ve mevcut C# dil özelliklerine erişim sağlarken, WPF programlama modeli aynı kalır.
WPF hala Windows-sadece. Eğer bugün bir masaüstü framework'ü seçiyorsanız, bu karşılaştırma yardımcı olacaktır:
| iskelet | En |
|---|---|
| WPF | Olgun, özellik bakımından zengin Windows devasa bir ekosisteme sahip masaüstü uygulamaları |
| Windows Kullanıcı Arayüzü 3 | Modern çağa yönelik yeni uygulamalar Windows 11 görünüm ve his |
| .NET MAUI'si | Çeşitli platformları kapsayan uygulamalar Windows, macOS, Androidve iOS |
WPF aktif olarak sürdürüldüğü ve kurumsal yazılımlara derinlemesine entegre edildiği için, onu öğrenmek pratik bir yatırım olmaya devam ediyor. Bu uygulamaları oluşturmada rahat olduktan sonra, en yaygın olanları uygulamaya koymakta fayda var. WPF mülakat soruları XAML, veri bağlama ve görsel ağaç gibi kavramları sabitlemek için.









