TOC

This article has been localized into Russian by the community.

Приложение WPF:

Окно

Создавая приложение WPF, первым, с чем Вы столкнетесь будет класс Window. Он служит корневым элементом окна и представляет собой обыкновенную рамку, заголовок и кнопки: "свернуть", "развернуть", "закрыть". Окно WPF - это комбинация файла XAML (.xaml), в котором элемент <Window> является корнем и CodeBehind файла (.xaml.cs). Используя Visual Studio (Express), при создании нового WPF приложения, система автоматически создаст Окно по умолчанию, которое будет выглядеть примерно так:

<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>

Атрибут x:class сообщает файлу XAML, какой класс необходимо использовать (в нашем случае Window1), который Visual Studio уже создала для нас. Вы можете найти его в дереве решений Visual Studio как дочерний узел файла XAML. По умолчанию он будет выглядеть так:

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();
        }
    }
}

Как Вы можете заметить, класс Window1 определен как разделяемый (partial class), так как при создании окна, в ходе исполнения, он сочетается с файлом XAML. Это на самом деле процесс, который реализуется при вызове InitializeComponent(), необходимого для получения полного функционала окна и его запуска.

Если мы вернемся назад, к файлу XAML, то Вы сможете обратить внимание на несколько интересных атрибутов элемента Окно, таких как: Title, который определяет заголовок окна (полоска Title), стартовые ширину и высоту. Так же, здесь находится несколько определений пространств имен, о которых мы поговорим позже.

Обратите внимание, что Visual Studio создала элемент Grid внутри Окна (Window). Grid является одним из контейнеров WPF, который может содержать в себе любые другие контейнеры или элементы управления, в то время как Окно может иметь внутри себя лишь один дочерний элемент. Одним из лучших вариантов такого дочернего контейнеров является элемент Panel. Позже в руководстве мы более подробно познакомимся с различными типами контейнеров, которые вы можете использовать, поскольку это очень важная тема в WPF.

Важные свойства Window

Класс Window имеет несколько интересных атрибутов, которые Вы можете устанавливать для управления внешним видом и поведением окна Вашего приложения. Ниже представлен короткий список самых интересных:

Icon — позволяет определить иконку окна, которая обычно расположена в левом верхнем углу, слева от заголовка (Title).

ResizeMode — управляет тем, может ли конечный пользователь изменять размер окна. Значение по умолчанию — CanResize, что позволяет пользователю изменять размер окна либо с помощью кнопок "свернуть"/"развернуть", либо перетягиванием за углы курсором мыши. CanMinimize позволяет пользователю свернуть окно, но запрещает разворачивать его на весь экран или изменять его размер. NoResize — самое строгое правило, которое убирает кнопки "свернуть"/"развернуть" и не позволяет менять размер окна.

ShowInTaskbar — по умолчанию имеет значение true, но если переназначить его на false, то окно не будет представлено в панели задач Windows. Это свойство очень полезно, так как позволяет убрать с панели задач вторичные окна или приложения, которые должны быть свернуты в трей.

SizeToContent - Определяет, будет ли Окно автоматически менять свой размер, приспосабливаясь под его контент. Значение по умолчанию - Manual, что значит, что окно не будет автоматически подстраивать свой размер. Другими опциями являются: Width, Height и WidthAndHeight, которые позволяют настроить автоподстройку размера окна по ширине, высоте, либо по двум параметрам сразу.

Topmost - По умолчанию - false, но при переключении на true - Окно буде оставаться на переднем фоне, если его не минимизировать. Свойство полезное, но при узконаправленной задаче.

WindowStartupLocation — управляет начальным положением окна. Значение по умолчанию Manual, означает, что окно при инициализации будет расположено согласно со свойствами окна Top и Left. Другими опциями являются CenterOwner, которая будет располагать окно в центре родительского окна и CenterScreen, располагающая окно в центре экрана.

WindowState — регулирует начальное состояние окна. Оно может принимать значения Normal, Maximized или Minimized. По умолчанию Normal, которое используется в случае, если вы не хотите, чтобы при запуске окно было свернуто или развернулось на весь экран.

Существует еще огромное множество подобных атрибутов. Перед тем, как перейти к следующей главе, Вам стоит самостоятельно с ними ознакомиться.