TOC

This article has been localized into Bulgarian by the community.

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

Прозорец (Window)

Когато създавате WPF приложение, първото нещо от което ще се нуждаете е класът Window. Той служи като корена на прозореца и Ви предоставя стандартните граници, заглавие както и бутоните за минимизиране и затвяряне. WPF прозорец е комбинация от XAML(.xaml) файл, където <Window> елемента е корена и CodeBehind (.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 файл-а, кой class да използва, в случая Window1, който Visual Studio също е създал за нас. Ще го намериш в дървото на проекта във VS, като child node на 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), защото се комбинира с XAML файла при изпълнение на програмата, за да покаже целия прозорец. Това се осъщестява всъщност чрез извикването на на InitializeComponent() функцията, която е задължително необходима, за да има напълно работещ и функциониращ прозорец.

Ако се върнем в XAML файла, ще забележим още няколко други интересни атрибути в Window елемента, като Title, което определя заглавието на прозореца (показан в title bar), както и стартовата ширина и височена. Има също и няколко namespace дефиниции, за които ще говорим в XAML частите на това ръководство.

Ще забележите и че Visual Studio е създал един Grid control вътре в прозореца (Window). Grid е един от възможните WPF панели и може да бъде използван на мястото на всеки панел или control, но един прозорец (Window) позволява само ЕДИН control като наследник, така че панел (Panel), който може да има като наследници множество контроли обикновено е най- подходящ. По-нататък в това ръководство ще разгледаме в много повече детайли различните панели, употребата им и т.н., тъй като те са от голямо значение за WPF.

Важни свойства на Window (прозореца)

WPF Window класа има множество интересни атрибути, чрез които може да се установи контрол върху поведението на прозореца на приложението. Ето кратък списък с най- интересните такива:

Icon- Позволява да дефинирате иконите на прозореца, които обикновено се намират в горен ляв ъгъл, в ляво от името на прозореца.

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, която трябва да се използва, освен ако искате да използвате някое от другите две.

Има още много други атрибути, които можете сами да прегледате и след това да преминете към следващата глава.