Основи на WPF, XAML

Стандартът XAML е доста очевиден, когато разбирате някои от основните му правила:

Всеки елемент в XAML документ се преобразува в екземпляр на .NET клас. Името на елемента съвпада точно с името на класа. Например елементът казва на WPF да създаде обект Button.

Както всеки XML документ, XAML ви позволява да влагате един елемент в друг. Както ще видите, XAML дава на всеки клас гъвкавостта да решава как да се справи с тази ситуация. Гнезденето обаче обикновено е начин за изразяване на сдържаност. С други думи, ако видите елемент Button вътре в Grid елемент, тогава потребителският интерфейс може да включва Grid, съдържащ Button вътре в него.

Свойствата на всеки клас могат да бъдат зададени чрез атрибути. В някои ситуации обаче атрибутите не са достатъчно мощни, за да се справят със задачата. В тези случаи ще ви трябват вложени дескриптори със специален синтаксис.

Дефиниране на MainWindow в XAML

Въпреки че инструментите могат да генерират приемлив XAML, все още е важно да се разберат основите на синтаксиса на XAML и как в крайна сметка маркирането се трансформира в правилен .NET сбор. Разгледайте следния прост XAML документ, представляващ нов празен прозорец (както е създаден в Visual Studio):

В контекста на манипулатора за отваряне се задават стойностите за атрибутите Title, Height и Width, които директно се съпоставят със свойства със същото име, поддържани от типа System.Windows.Window от сборката PresentationFramework.dll.

Пространства от имена на XAML

Ясно е, че простото посочване на името на класа не е достатъчно. Анализаторът XAML също трябва да знае пространството от имена .NET, където се намира този клас. Например класът Window може да съществува в множество пространства от имена - той може да се отнася до класа System.Windows.Window, към клас в компонент на трета страна или към клас, дефиниран във вашето приложение. Анализаторът XAML изследва XML пространството от имена, към което принадлежи елементът, за да определи кой клас всъщност е необходим.

Ето как става това. В примерния документ, показан по-рано, са дефинирани две пространства от имена:

Пространствата от имена се декларират с помощта на атрибути. Тези атрибути могат да бъдат поставени в началния дескриптор на всеки елемент. По съгласие обаче всички пространства от имена, които ще се използват в документ, трябва да бъдат декларирани в първия дескриптор, както е направено в този пример. След като пространството на имената е декларирано, то може да се използва навсякъде в документа.