Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Янин В.Л. "Новгородские акты XII-XV Хронологический комментарий" (История)

Майринк Г. "Белый доминиканец " (Художественная литература)

Хусаинов А. "Голоса вещей. Альманах том 2" (Художественная литература)

Петров Г.И. "Отлучение Льва Толстого " (Художественная литература)

Хусаинов А. "Голоса вещей. Альманах том 1 " (Художественная литература)
Реклама

Windows presentation foundation with - MacDonald M.

MacDonald M. Windows presentation foundation with — Вильямс , 2008. — 928 c.
ISBN 978-5-8459-1429-3
Скачать (прямая ссылка): wpfwindowspresente2008.pdf
Предыдущая << 1 .. 18 19 20 21 22 23 < 24 > 25 26 27 28 29 30 .. 473 >> Следующая

xmlns — это специализированный атрибут в мире XML, который зарезервирован для объявления пространств имен. Этот фрагмент кода разметки объявляет два пространства имен, которые будут присутствовать в каждом создаваемом вами документе WPF XAML.
• http://schemas.microsoft.com/winfx/2006/xaml/presentation — основное пространство имен WFP. Оно охватывает все классы WPF, включая элементы управления, которые вы применяете для построения пользовательских интерфейсов. В этом примере это пространство имен объявлено без префикса — пространства имен, поэтому становится пространством имен по умолчанию для всего документа. Другими словами, каждый элемент автоматически помещается в это пространство имен, если только вы не укажете иного.
• http://schemas.microsoft.com/winfx/200 6/xaml — пространство имен XAML. Оно включает различные служебные свойства XAML, которые позволяют вам влиять на то, как интерпретируется ваш документ. Это пространство имен отображается на префикс x. Это значит, что вы можете применять его, помещая префикс пространства имен перед именем элемента (как в ^:ИмяЭлемента>).
Book_Pro_WPF-2.mdb 50 19.05.2008 18:09:39
XAML 51
Как видите, пространство имен XML не соответствует никакому конкретному пространству имен .NET. Есть несколько причин, по которым создатели XML выбрали такой дизайн. По существующему соглашению пространства имен XML часто имеют форму URI (как и в данном примере). Эти URI выглядят так, будто указывают на некоторое место в Web, хотя на самом деле это не так. Формат URI используется потому, что он делает маловероятным ситуацию, когда разные организации нечаянно создадут разные языки на базе XML с одинаковым пространством имен. Поскольку домен schemas.microsoft.com принадлежит Microsoft, только Microsoft использует его в названии пространства имен XML.
Другая причина того, что нет отображения “один к одному” между пространствами имен XML, используемым в XAML, и пространствами имен .NET заключается в том, что это могло бы значительно усложнить ваши документы XAML. Проблема состоит в том, что WPF включает в себя свыше десятка пространств имен (все начинаются с System.Windows). Если бы каждое пространство имен .NET отображалось на отдельное пространство имен XML, вам пришлось бы специфицировать правильное пространство имен для любого и каждого используемого элемента управления, что быстро привело бы к путанице. Вместо этого создатели WPF предпочли комбинировать все эти пространства имен .NET в единое пространство имен XML. Это работает, потому что внутри разных пространств имен .NET, образующих часть WPF, нет классов с одинаковыми именами.
Информация пространства имен позволяет анализатору XAML находить правильный класс. Например, когда он смотрит на элементы Window и Grid, то видит, что они помещены в пространство имен WPF по умолчанию. Затем он ищет соответствующие пространства имен .NET — до тех пор, пока не находит System.Windows.Window и System.Windows.Controls.Grid.
Класс отделенного кода
XAML позволяет конструировать пользовательский интерфейс, но для того, чтобы создать функционирующее приложение, вам нужен способ подключения обработчиков событий, содержащих код вашего приложения. XAML позволяет легко это сделать с помощью атрибута Class, показанного ниже:
1 <Window x:Class="WindowsApplication1.Window1"
Префикс пространства имен x помещает атрибут Class в пространство имен XAML, что означает более общую часть языка XAML. Фактически атрибут Class сообщает анализатору XAML, чтобы он сгенерировал новый класс с указанным именем. Этот класс наследуется от класса, именованного элементом XML. Другими словами, этот пример создает новый класс по имени Windowl, который наследуется от базового класса Window.
Класс Windowl генерируется автоматически во время компиляции. И здесь начинается самое интересное. Вы можете предоставить часть класса Windowl, которая будет объединена с автоматически сгенерированной частью этого класса. Специфицированная вами часть — блестящий контейнер для вашего кода обработки событий.
На заметку! Это волшебство возможно благодаря средству С#, известному под названием частичных классов. Частичные классы позволяют разделить класс на две или более отдельных части во время разработки, которые соединяются вместе в компилированной сборке. Частичные классы могут быть использованы во многих сценариях управления кодом, но более всего удобны, когда ваш код должен объединяться с файлом, сгенерированным дизайнером.
Среда Visual Studio помогает вам за счет автоматического создания частичного класса, куда вы можете поместить свой код обработки событий. Например, если вы создаете при-
Book_Pro_WPF-2.mdb 51 19.05.2008 18:09:39
52 Глава 2
ложение по имени WindowsApplicationl, содержащий окно по имени Windowl (как в предыдущем примере), Visual Studio начнет с создания следующего базового каркаса класса:
namespace WindowsApplicationl {
/// <summary>
/// Interaction logic for Windowl.xaml /// </summary>
public partial class Windowl : Window {
public Windowl()
{
InitializeComponent();
Предыдущая << 1 .. 18 19 20 21 22 23 < 24 > 25 26 27 28 29 30 .. 473 >> Следующая