This article has been localized into Polish by the community.
Okno
Podczas tworzenia aplikacji WPF pierwszą rzeczą, jaką spotkasz będzie klasa Window. Pełni rolę rdzenia okna programu i zapewnia podstawowe obramowanie, panel tytułowy oraz przyciski maksymalizuj, minimalizuj i zamknij. Okno WPF jest kombinacją pliku XAML (.xaml), gdzie element <Window> jest rdzeniem (root), oraz z pliku z kodem źródłowym (.cs) - zwanym CodeBehind. Jeśli używasz Visual Studio i stworzysz nowy projekt WPF to środowisko wygeneruje za ciebie domyślne okno, które będzie wyglądało mniej więcej w ten sposób:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
</Grid>
</Window>
Atrybut x:class mówi plikowi XAML, której klasy użyć. W tej sytuacji jest to Window1, która została stworzona przez Visual Studio. Znajdziesz ją w drzewie projektu w Visual Studio, jako gałąź pliku XAML. Domyślnie wygląda ona w ten sposób:
using System;
using System.Windows;
using System.Windows.Controls;
//…more using statements
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
}
}
Klasa Window1 jest zdefiniowana jako partial co pozwala na powiązanie jej z plikiem XAML, dzięki czemu podczas działania aplikacji dostajemy kompletne okno programu. Tę pracę wykonuje metoda InitializeComponent(), której wywołanie jest konieczne, aby uzyskać w pełni działające okno.
Jeśli cofniemy się do pliku XAML, zauważysz kilka innych interesujących atrybutów elementu Window, jak Title (tytuł), który określa tytuł okna (pokazany w pasku tytułowym) oraz szerokość (Width) i wysokość (Height) z początkowymi wartościami. Jest też kilka przestrzeni nazw, o których porozmawiamy w rozdziałach na temat XAML.
Zauważysz także, że Visual Studio stworzyło dla nas kontrolkę Grid wewnątrz elementu Window. Kontrolka Grid jest jednym z paneli w WPF. Element Window może mieć tylko jeden element podrzędny (child), dlatego dobrym wyborem jest skorzystanie z takiej kontrolki jak Grid, która może zawierać wiele różnych elementów podrzędnych. Dalej w tym poradniku, spojrzymy bliżej na różne typy paneli, których można użyć, a które są bardzo istotne w aplikacjach WPF.
Ważniejsze właściwości elementu Window
Klasa WPF Window posiada wiele interesujących atrybutów, którymi możesz kontrolować wygląd oraz zachowanie okna aplikacji. Oto krótka lista najbardziej interesujących:
Icon - Pozwala na zdefiniowanie ikony okna, która jest zazwyczaj umieszczana w lewym górnym rogu okna, zaraz przed tytułem okna.
ResizeMode - Pozwala na kontrolę tego, kiedy i w jaki sposób użytkownik aplikacji może zmieniać rozmiar okna. Domyślna wartość to CanResize, które pozwala użytkownikowi na zmianę rozmiaru okna za pomocą przycisków maksymalizuj/minimalizuj lub za pomocą rozciągania okna kursorem myszki, chwytając krawędzie okna. Wartość CanMinimize określa czy użytkownik może minimalizować okno, ale dotyczy tylko tej opcji. NoResize jest najbardziej restrykcyjną opcją, ponieważ ukrywa przyciski minimalizuj i maksymalizuj oraz blokuje możliwość zmieniania rozmiaru kursorem myszy.
ShowInTaskbar - Domyślna wartość to true (prawda), ale jeśli ustawisz ją na false (fałsz) to twoje okno nie będzie widoczne w pasku zadań. Jest to użyteczne w przypadku aplikacji, które mają działać w tle lub minimalizować się do zasobnika systemowego.
SizeToContent - Pozwala zdecydować, czy okno powinno dostosowywać się samo do swojej zawartości (kontrolek w nim umieszczonych). Domyślna wartość to Manual, czyli okno nie zmienia swojego rozmiaru automatycznie. Innymi opcjami jest Width, Height oraz WidthAndHeigth i każde z nich dostosuje rozmiar horyzontalnie, wertykalnie lub w obydwu płaszczyznach.
Topmost - Domyślna wartość to false (fałsz), ale jeśli ustawione na true (prawda) to twoje okno będzie umieszczane ponad innymi oknami (na wierzchu), chyba że zostanie zminimalizowane. Jest to użyteczne tylko w określonych sytuacjach.
WindowStartupLocation - Kontroluje początkową lokalizację twojego okna aplikacji. Domyślna wartość to Manual, co znaczy, że okno będzie początkowo ustawione na podstawie wartości Top oraz Left okna aplikacji, ale jeśli nie są one ustawione, Windows sam zdecyduje gdzie okno będzie umieszczone. Inną opcją jest CenterOwner które ustawi pozycję okna w centrum rodzica. Pozostałą opcją jest CenterScreen, która ustawi okno aplikacji na środku ekranu.
WindowState - Kontroluje początkowy stan okna. Może być ustawione na wartość Normal, Maximized lub Minimized. Domyślną wartością jest Normal, co sprawia, że okno pokazuje się na pulpicie w postawi zdefiniowanej w pliku XAML lub pliku klasy okna. Powinno się używać właśnie opcji Normal, jeśli aplikacja nie ma być uruchamiana zminimalizowana lub zmaksymalizowana.
Jest wiele innych atrybutów, ale musisz poszukać i zapoznać się z nimi samodzielnie, po czym przejdź do kolejnego rozdziału.