WPF Uygulaması
- 220
- (1)
- (5)
- 02 Haz 2017
Masaüstü uygulama geliştirmek için Windows Forms türüne alternatif olarak WPF türü uygulamalar geliştirebilirsiniz. Son derece zevkli ve kullanışlı yapısıyla WPF ile çeşitli uygulamalar hazırlanabilmektedir.
WPF arayüzü XAML (eXtensible Application Markup Language) denilen bir format ile yazılmaktadır. Visual Studio' nun XAML tasarım arayüzünü de kullanabilirsiniz.
Sıfırdan oluşturulan bir WPF uygulamasında MainWindow
içerisindeki XAML kodu aşağıdaki gibi olacaktır.
<Window x:Class="TestApp.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"
mc:Ignorable="d"
Title="MainWindow" Height="480" Width="600">
<Grid>
</Grid>
</Window>
Pencere içerisindeki TextBlock
, TextBox
, Button
gibi UIElement
denilebilecek her nesneyi Grid
tagı içerisinde tanımlayabilirsiniz.
Grid
nesnesi de bir WPF UIElement
nesnesi olup panel görevi görmektedir. İçerisinde satır ve sütun tanımlanarak nesneler istenilen pozisyonda konumlandırılabilir. Veya StackPanel
ile nesneler alt alta veya yan yana sıralanabilir. WPF ile nesnelerin üzerine konumlandırılabileceği çeşitli panel türleri bulunmaktadır.
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="64" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="32" />
</Grid.ColumnDefinitions>
</Grid>
Grid
isimli UIElement
içerisinde dört adet oluşturulan sütun genişlikleri aşağıdaki gibi görünecektir.
İlk sütun 64 piksel, son sütun ise 32 piksel genişliğindedir. Diğer sütunlar kalan genişliğin 1/3' ü ve 2/3' üne denk gelmektedir. *
ile belirtilen uzunluklar orantılıdır ve pencere boyutunun değişmesiyle değişebilmektedir.
WPF penceresinin içerisini şu şekilde doldurursak,
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="64" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="32" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="32" />
<RowDefinition Height="32" />
<RowDefinition Height="48" />
<RowDefinition Height="48" />
</Grid.RowDefinitions>
<TextBlock Text="İsim: " Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" TextAlignment="Right" />
<TextBlock Text="Soyisim: " Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" TextAlignment="Right" />
<TextBox Grid.Row="0" Grid.Column="2" VerticalAlignment="Center" />
<TextBox Grid.Row="1" Grid.Column="2" VerticalAlignment="Center" />
<Button Content="Tamam" Grid.Row="2" Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Left" Width="64" />
</Grid>
Elde edilen tasarım aşağıdaki gibi olacaktır.
İlişkili İçerikler
C# ile ekran görüntüsü alan bir uygulama nasıl yazılır öğrenmek için bu içeriğe bakabilirsiniz. Ekran görüntülerini ListBox üzerinde gösteren bir WPF uygulaması.