WPF ile Basit Bir Uygulama Geliştirmek
- Ali
- | 28 Nis 2025
- | Windows WPF
Herkese merhaba Ben Ali,
Bu yazıda Windows platformunda modern masaüstü uygulamaları geliştirmenizi sağlayan WPF (Windows Presentation Foundation) ile örnek bir proje oluşturacağız.
WPF Projesi Oluşturma
Visual Studio 2022 üzerinden "Create a new project" sekmesi ile projelerin listelendiği ekrana geliyoruz. Burada arama kısmına "WPF" yazdığımızda çıkan seçeneklerden C# yazana tıklıyoruz. Proje ismi olarak ben "FirstWPFApp" şeklinde bir isimlendirme verdim ve masaüstü üzerine kaydettim (Görsel 1.1). Framework olarak .NET 8.0 seçtim.
Proje Dosyaları
Öncelikle "Solution Explorer" penceresini incelediğinizde App.xaml ve MainWindow.xaml dosyalarının oluşturulduğunu görebilirsiniz (Görsel 1.2).
App.xaml
- Amacı: Uygulamanın başlangıç ayarlarını ve yaşam döngüsünü yönetir.
- Ne İçerir: Genellikle uygulamanın genelinde geçerli kaynaklar (stil, tema vb.) ve
StartupUri
yani uygulama başladığında açılacak ilk pencere bilgisi bulunur.
<Application x:Class="WpfApp1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<!-- Global kaynaklar buraya eklenebilir -->
</Application.Resources>
</Application>
App.xaml.cs: Bu dosyanın arka planında çalışan C# kodlarını içerir (örneğin uygulama başlarken yapılacak işlemler gibi).
MainWindow.xaml
- Amacı: Kullanıcının etkileşime geçtiği ana pencereyi tanımlar.
- Ne içerir: Butonlar, textbox'lar gibi arayüz bileşenlerini XAML ile tanımlanabilir.
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Content="Tıkla" Width="100" Height="30"/>
</Grid>
</Window>
MainWindow.xaml.cs: Bu pencereye ait C# Kodlarının yazıldığı arka plan dosyasıdır. (event handling gibi).
XAML Nedir?
XAML (Extensible Application Markup Language), WPF ve diğer .NET tabanlı UI teknolojilerinde arayüzleri tanımlamak için kullanılan bir işaretleme dilidir.
Özellikleri:
- XML tabanlıdır.
- Arayüz öğelerini (UI) deklaratif olarak tanımlama olanağı sağlar.
- C# veya VB.NET kodu yerine UI yapısını sade bir biçimde tanımlarsınız.
- Kod-behind (arka plan) dosyaları ile birlikte çalışır.
<Button Content="Kaydet" Width="100" Height="30"/>
HTML Benzeri Karşılığı:
<button style="width: 100px; height: 30px;">Kaydet</button>
XAML Yazım Kuralları:
- Açılan etiketler kapatılmalıdır. (
<Grid>...</Grid>
) - Gerekli şemalar belirtilmelidir (
xmlns
...) - Büyük-küçük harf ayrımına uyulmalıdır.
- Hiyerarşi korunmalıdır.
- Mutlaka bir kök düğüm bulunmalıdır (
<Window>...</Window>
gibi).
HTML ve XAML Benzerlikleri
- Her ikisi de kullanıcı arayüzü öğelerini tanımlamak için kullanılan işaretleme dilleridir.
- HTML web uygulamaları, XAML ise masaüstü uygulamaları (WPF, Xamarin) için kullanılır.
WPF Form Özellikleri
MainWindow.xaml.cs
dosyası incelendiğinde, bu sınıfın Window
sınıfından kalıtım aldığı görülür. Bu da WPF penceresinin birçok hazır özelliği kullanabileceği anlamına gelir.
En Sık Kullanılan Pencere Özellikleri:
- Title: Başlık çubuğunda görünen metin
- Width / Height: Genişlik ve yükseklik değerleri
- MinWidth / MinHeight / MaxWidth / MaxHeight: Yeniden boyutlandırma limitleri
- ResizeMode, Cursor, Icon, WindowStyle, WindowState, WindowStartupLocation gibi davranış kontrolü sağlayan özellikler
- Topmost, Tooltip, Left, Top: Konum ve gösterim ayarları
- Opacity, AllowTransparency: Şeffaflık ayarları
- Tag: Ek bilgi taşımak için kullanılabilir
Örnek Proje
FirstWPFApp isimli projemizde, aşağıdaki gibi bir pencere tasarlayalım (Görsel 1.3):
- Zemin rengi mavi olacak
- Pencere yeniden boyutlandırıldığında minimum 300x500, maksimum 600x800 olacak
<Window x:Class="FirstWPFApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
x:Name="mainWin"
xmlns:local="clr-namespace:FirstWPFApp"
mc:Ignorable="d"
Title="Rapor Ekranı" Height="800" Width="1200"
MinHeight="300" MinWidth="500"
MaxHeight="600" MaxWidth="800"
Background="Blue">
<Grid>
</Grid>
</Window>
Kapanış
Bu yazıda, Visiual Studio ile sıfırdan bir WPF projesi oluşturmayı, Proje oluştuğunda gelen dosyaları, XAML hakkında bilgi ve küçük bir proje ile tamamlamış bulunmaktayız. Bu makale üzerinde yine XAML üzerinde ufak bilgi sahibi olduk fakat bir sonraki makale tamamen XAML üzerinde olacaktır.
Derinlemesine XAML isimli makaleden devam edebilirsiniz. Hoşçakalın