TOC

This article has been localized into Turkish by the community.

Temel Kontroller:

Button Kontrolü

Hiç bir GUI framework Button kontrolü olmadan tamam sayılmaz, dolayısıyla WPF'de de yakışıklı bir tanesi var ve hemen tüm diğer framework kontrolleri gibi hemen herşeyi yapmanıza imkan veren esnekliğe sahip. Ama önce temel örneklerle başlayalım.

Basit bir Button

Bir çok diğer WPF kontrolleri gibi bir Button da pencereye bir Button tag'i ekleyerek gösterileilir. Tag'ler arasına yazı yazarsanız (diğer kontrollerde olduğu gibi) Button nesnesinin içeriği olarak yazılacaktır.

<Button>Hello, world!</Button>

Oldukça kolay değil mi? Tabi ki Button henüz bir iş yapmıyor, ama üzerine gelirseniz güzel bir hover efekti görürsünüz. Şimdi Buuton'un Click olayını işleyerek bir şeyler yapmasını sağlayalım. (bu konuda daha fazla bilgi XAML'de olayların işlenmesi makalesinde bulunabilir)

<Button Click="HelloWorldButton_Click">Hello, World!</Button>

Arkaplan kodunda bu click olayını işleyen metoda ihtiyacınız var :

private void HelloWorldButton_Click(object sender, RoutedEventArgs e)
{
    MessageBox.Show("Hello, world!");
}

Artık en temel seviyede bir Button var ve tıkladığınızda bir mesaj gösterilecektir!

Şekillendirilmiş içerik

Dahili olarak Button içeriğindeki düz yazı bir TextBlock'a çevrilir, bu aynı zamanda bu yazı üzerinde şekillendirme yapabileceğiniz anlamına gelir. Button kontrolünde bunu yapmak için Foreground, Background, FontWeight ve daha fazlası özellikler bulacaksınız (bu kadarla da sınırlı değil). Başka bir deyişle Button kontrolü içindeki yazıyı şekillendirmek oldukça kolay.

<Button Background="Beige" Foreground="Blue" FontWeight="Bold">Formatted Button</Button>

Bu özellikleri direk olarak Button'da değiştirirseniz tabi ki format tüm içeriğe uygulanacaktır, fakat bu yeterince iyi değilse şimdi daha gelişmiş bir içerik şekillendirmeye bakın.

Gelişmiş içeriğe sahip Buttonlar

Şimdiye kadar çok kez konuştuk WPF'in en üstün özelliklerinden biri düz yazı olan bir kontrol içeriğinin WPF kontrolleri ile değiştirilebilmesi. Button üzerindeki yazıyı da düz yazı olarak yapmakla sınırlı değilsiniz, Değişik formatlarda çok sayıda yazı kontrol koyabilirsiniz. WPF Button sadece bir tane alt kontrol içerebilir, fakat siz burada bir panel kullanarak onun içine birçok kontrol ekleyebilirsiniz. Bu sayede gelişmiş içeriklere sahip Button'lar elde edebilirsiniz.

<Button>
    <StackPanel Orientation="Horizontal">
<TextBlock>Formatted </TextBlock>
<TextBlock Foreground="Blue" FontWeight="Bold" Margin="2,0">Button</TextBlock>
<TextBlock Foreground="Gray" FontStyle="Italic">[Various]</TextBlock>
    </StackPanel>
</Button>

Tabi ki sadece yazı ile sınırlı değilsiniz - Button içine istediğiniz nesneleri koyabilirsiniz. Böyle deyince bir çok kişinin aklına bir konu gelecek, üzerinde resim olan Button'lar!

Resim içeren Button (ImageButton)

Bir çok UI framework'da bir standart Button ve bir ya da daha fazla sayıda extra özellikleri olan diğer biçimleri bulursunuz. En çok yaygın olan biçim ImageButton kontrolüdür, adından anlaşılacağı üzere genellikle yazıdan önce Button üzerinde bir de resim eklemenize imkan tanır. Fakat WPF'de bunun için ayrı bir kontrol tanımlamaya gerek yok - az önce gördüğünüz gibi Button içine kontroller koyabiliyoruz, bu sayede kolayca içeriğe bir Image kontrolü ile resim de ekleyebilirsiniz, şöyle ki :

<Button Padding="5">  
    <StackPanel Orientation="Horizontal">  
<Image Source="/WpfTutorialSamples;component/Images/help.png" />  
<TextBlock Margin="5,0">Help</TextBlock>  
    </StackPanel>  
</Button>

WPF'de bir ImageButton yapmak bu kadar kolay, ve tabi ki içeriktekileri istediğiniz gibi kaydırabilirsiniz. Örneğin eğer isterseniz yazıyı resimden önce koyarsınız vs.

Button Padding özelliği

Dikkat ettiyseniz WPF framework'da butonlar default bir padding özelliği iile gelmezler. Bunun anlamı içindeki yazı göze hoş gelmeyecek kadar kenarlara yakındır. Başka yerlerde butonlarla kenarlar arasında en azından biraz boşluk vardır (webde , diğer uygulamalarda vs.). Endişelenmeyin çünkü Button kontrolü Padding özelliğine sahiptir :

<Button Padding="5,2">Hello, World!</Button>

Bu kod yanlarda 5 piksel ve alta üstte de 2 şer piksel padding boşluğu yapacaktır. Fakat tüm butonlarınıza tek tek padding tanımlamak yorucu olabilir, işte size bir ipucu : İsterseniz tüm uygulama kapsamında isterseniz bir pencerenin genelinde Style kullanarak (stiller hakkında daha bilgi ileride verilecek) padding ayarlaması yapabilirsiniz. Bu örnekte Window.Resources özelliği ile yapılışını görüyoruz :

<Window.Resources>
    <Style TargetType="{x:Type Button}">
<Setter Property="Padding" Value="5,2"/>
    </Style>
</Window.Resources>

Padding şimdi penceredeki tüm Button kontrollerine uygulanır, ama isterseniz bir Button kontrolünün Padding özelliğine yazarak sadece ona özel değer de verebilirsiniz tabi ki. Aşağıdaki şekil ortak Padding özelliğine sahip Button kontrollerinin nasıl görüneceğine dair bilgi verecektir.

Sonuç

Gördüğünüz gibi WPF framework'da Button kullanmak çok kolay ve bu önemli kontrolü hemen hemen sınırsız şekilde düzenleyebilirsiniz.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!