Kontrolki WPF

Kontrolki w WPF(Windows Presentation Foundation) pozwalają na tworzenie interfejsu użytkownika w aplikacjach desktopowych. Używając XAML, można łatwo definiować UI, a logikę działania kontrolki implementować w C#. Kontrolki można umieszczać zarówno z poziomu XAML Designer w Visual Studio, jak i ręcznie edytując pliki XAML.
Button (Przycisk)
<Button Content="Kliknij mnie" Click="Button_Click"/>
private void Button_Click(object sender, RoutedEventArgs e)
{
    MessageBox.Show("Przycisk został kliknięty!");
}
TextBox (Pole tekstowe)
<TextBox x:Name="textBox" Width="200"/>
private void Button_Click(object sender, RoutedEventArgs e)
{
    MessageBox.Show(textBox.Text);
}
Label (Etykieta)
<Label Content="To jest etykieta"/>
CheckBox (Pole wyboru)
<CheckBox Content="Zaznacz mnie" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"/>
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
    MessageBox.Show("Zaznaczono!");
}

private void CheckBox_Unchecked(object sender, RoutedEventArgs e)
{
    MessageBox.Show("Odznaczono!");
}
RadioButton (Przycisk radiowy)
<StackPanel>
    <RadioButton Content="Opcja 1" GroupName="Grupa1" Checked="RadioButton_Checked"/>
    <RadioButton Content="Opcja 2" GroupName="Grupa1" Checked="RadioButton_Checked"/>
</StackPanel>
private void RadioButton_Checked(object sender, RoutedEventArgs e)
{
    var radioButton = (RadioButton)sender;
    MessageBox.Show($"{radioButton.Content} został zaznaczony.");
}
ComboBox (Lista rozwijana)
<ComboBox x:Name="comboBox">
    <ComboBoxItem Content="Opcja 1"/>
    <ComboBoxItem Content="Opcja 2"/>
</ComboBox>
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var comboBoxItem = (ComboBoxItem)comboBox.SelectedItem;
    MessageBox.Show($"{comboBoxItem.Content} została wybrana.");
}
ListBox (Lista)
<ListBox x:Name="listBox">
    <ListBoxItem Content="Element 1"/>
    <ListBoxItem Content="Element 2"/>
</ListBox>
Slider (Suwak)
<Slider Minimum="0" Maximum="100" ValueChanged="Slider_ValueChanged"/>
private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
    var sliderValue = ((Slider)sender).Value;
    MessageBox.Show($"Wartość suwaka: {sliderValue}");
}
Image (Obraz)
<Image Source="ścieżka_do_obrazu.jpg"/>
ProgressBar (Pasek postępu)
<ProgressBar x:Name="progressBar" Minimum="0" Maximum="100" Value="50"/>