Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Структура и пространства имен XAML

При создании нового проекта WPF он уже содержит файлы с кодом xaml. Так, создаваемый по умолчанию в проекте файл MainWindow.xaml будет иметь следующую разметку:

  < Window x: Class=" FirstWpfApp.MainWindow" xmlns=" https://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns: x=" https://schemas.microsoft.com/winfx/2006/xaml" Title=" MainWindow" Height=" 350" Width=" 525" > < Grid>   < /Grid> < /Window>

Если вы совершенно не знакомы с xaml и с xml, то даже этот небольшой минимальный код окна может вызывать затруднения.

Подобно структуре веб-страничке на html, здесь есть некоторая иерархия элементов. Элементов верхнего уровня являетсяWindow, который представляет собой окно приложения. При создании других окон в приложении нам придется всегда начинать объявление интерфейса с элемента Window, поскольку это элемент самого верхнего уровня.

Кроме Window существует еще два элемента верхнего уровня:

  • Page
  • Application

Элемент Window имеет вложенный пустой элемент Grid, а также подобно html-элементам ряд атрибутов (Title, Width, Height) - они задают заголовок, ширину и высоту окна соответственно.

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

При создании кода на языке C#, чтобы нам были доступны определенные классы, мы подключаем пространства имен с помощью директивы using, например, using System.Windows;.

Чтобы задействовать элементы в XAML, мы также подключаем пространства имен. Вторая и третья строчки как раз и представляют собой пространства имен, подключаемые в проект по умолчанию. А атрибут xmlns представляет специальный атрибут для определения пространства имен.

Так, пространство имен https://schemas.microsoft.com/winfx/2006/xaml/presentation содержит описание и определение большинства элементов управления. Так как является пространством имен по умолчанию, то объявляется без всяких префиксов.

https://schemas.microsoft.com/winfx/2006/xaml - это пространство имен, включающее некоторые свойства XAML, например свойство Name или Key. Используется с префиксом x, это значит, что те свойства элементов, которые заключены в этом пространстве имен, будут использоваться с префиксом x - x: Name или x: Key. Это же пространство имен используется уже в первой строчке x: Class=" FirstWpfApp.MainWindow" - здесь создается новый класс MainWindow и соответствующий ему файл кода, куда будет прописываться логика для данного окна приложения.

Важно понимать, что эти пространства имен не эквивалентны тем пространствам имен, которые подключаются при помощи директивы using в c#. Так, например, https://schemas.microsoft.com/winfx/2006/xaml/presentation подключает в проект такие пространства имен как System.Windows, System.Windows.Controls, System.Windows.Media и ряд других.

Мы можем подключить любые другие пространства имен, классы которых мы хотим использовать в приложении. Например:

  < Window x: Class=" XAML.MainWindow" xmlns=" https://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns: x=" https://schemas.microsoft.com/winfx/2006/xaml" xmlns: col=" clr-namespace: System.Collections; assembly=mscorlib" xmlns: sys=" clr-namespace: System; assembly=mscorlib" Title=" MainWindow" Height=" 350" Width=" 525" > < Window.Resources> < col: ArrayList x: Key=" days" > < sys: String> Понедельник< /sys: String> < sys: String> Вторник< /sys: String> < sys: String> Среда< /sys: String> < sys: String> Четверг< /sys: String> < sys: String> Пятница< /sys: String> < sys: String> Суббота< /sys: String> < sys: String> Воскресенье< /sys: String> < /col: ArrayList> < /Window.Resources> < Grid>   < /Grid> < /Window>

Здесь определены два дополнительных пространства имен:

  xmlns: col=" clr-namespace: System.Collections; assembly=mscorlib" xmlns: sys=" clr-namespace: System; assembly=mscorlib"

Благодаря этому нам становятся доступными объекты из пространств имен System.Collections и System. И затем используя префикс, мы можем использовать объекты, входящие в данные пространства имен: < col: ArrayList....

Общий синтаксис подключения пространств имен следующий: xmlns: Префикс=" clr-namespace: Пространство_имен; assembly=имя_сборки". Так в предыдущем случае мы подключили пространство имен System.Collections, классы которого находятся в сборке mscorlib. И данное подключенное пространство имен у нас отображено на префикс col.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.