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

Windows presentation foundation with - MacDonald M.

MacDonald M. Windows presentation foundation with — Вильямс , 2008. — 928 c.
ISBN 978-5-8459-1429-3
Скачать (прямая ссылка): wpfwindowspresente2008.pdf
Предыдущая << 1 .. 26 27 28 29 30 31 < 32 > 33 34 35 36 37 38 .. 473 >> Следующая

[Answer will appear here.]
</TextBox> ’
Button (cmdAnswer) vVindow/Grid/Button
Рис. 2.2. Прикрепление события с помощью Visual Studio IntelliSense
Полный пример автоответчика
Теперь, когда вы познакомились с основами XAML, вы знаете достаточно, чтобы пройтись по определению окна, показанного на рис. 2.1. Вот полный код разметки XAML:
<Window x:Class="EightBall.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Eight Ball Answer" Height="328" Width="412" >
<Grid Name="grid1">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBox VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="10,10,13,10" Name="txtQuestion"
TextWrapping="Wrap" FontFamily="Verdana" FontSize="24"
Grid.Row="0">
[Place question here.]
</TextBox>
Book Pro WPF-2.indb 65
18:09:41
66 Глава 2
<Button VerticalAlignment="Top" HorizontalAlignment="Left" Margin="l0,0,0,20" Width="l27" Height="23" Name="cmdAnswer" Click="cmdAnswer_Click" Grid.Row="l">
Ask the Eight Ball </Button>
<TextBox VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="l0,l0,l3,l0" Name="txtAnswer" TextWrapping="Wrap"
IsReadOnly="True" FontFamily="Verdana" FontSize="24" Foreground="Green" Grid.Row="2">
[Answer will appear here.]
</TextBox>
<Grid.Background>
<LinearGradientBrush>
<LinearGradientBrush.GradientStops>
<GradientStop Offset="0.00" Color="Red" />
<GradientStop Offset="0.50" Color="Indigo" />
<GradientStop Offset="l.00" Color="Violet" /> </LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Grid.Background>
</Grid>
</Window>
Напомним, что вы, наверно, не захотите писать вручную XAML для всего пользовательского интерфейса — это может быть невыносимо утомительно. Однако у вас могут быть веские причины отредактировать код XAML, чтобы внести изменения, которые было бы трудно обеспечить в дизайнере. Вам также может понадобиться просмотреть код XAML, чтобы получить лучшее представление о работе окна.
Использование типов из других пространств имен
До сих пор вы видели, как создается базовый интерфейс в XAML с использованием классов, являющихся частью WPF. Однако XAML задуман как средство общего назначения для создания экземпляров объектов .NET, включая те, что находятся в пространствах имен, не относящихся к WPF, и те, которые вы создаете сами.
Может показаться странным рассматривать создание объектов, которые не предназначены для экранного отображения в окне XAML, но существует немало ситуаций, когда это оправдано. Примером может служить случай, когда вы используете привязку данных и хотите нарисовать информацию из другого объекта, чтобы отобразить ее в элементе управления. Другой пример — когда вы хотите установить свойство объекта WPF, используя объект, не относящийся к WPF.
Например, вы можете заполнить WPF-элемент ListBox объектами данных. ListBox будет вызывать метод ToString() , чтобы получить текст для отображения каждого элемента в списке. (Для еще лучшего отображения списка вы можете создать шаблон данных, который извлечет множественные фрагменты информации и отформатирует их соответствующим образом. Эта техника описана в главе 17.)
Для того чтобы использовать класс, который не определен ни в одном из пространств имен WPF, вам следует отобразить пространство имен .NET на пространство имен XML. XAML имеет специальный синтаксис для этого, который выглядит так:
xmlns: Прeфикс="clr-namespace: ПрострaнствоИмен;assembly=ИмяСборки"
Обычно вы будете помещать это отображение пространства имен в корневой элемент вашего документа XAML — сразу после атрибутов, которые описывают простран-
Book_Pro_WPF-2.mdb 66 19.05.2008 18:09:41
XAML 67
ства имен WPF и XAML. Также вы должны заполнить выделенные курсивом части соответствующей информацией, как описано ниже.
• Префикс — префикс XML, который вы хотите использовать для указания пространства имен в вашей разметке XAML. Например, язык XAML использует префикс х.
• ПространствоИмен — полностью квалифицированное название пространства имен .NET.
• ИмяСборки — сборка, в которой объявлен тип, без расширения .dll. Ваш проект должен ссылаться на эту сборку. Если вы хотите использовать сборку вашего проекта, этот параметр опустите.
Например, вот как вы можете получить доступ к базовым типам пространства имен System и отобразить их на префикс sys:
xmlns: sys="clr-namespace: System;assembly=mscorlib"
А вот так вы можете получить доступ к типам, которые вы объявили в пространстве имен MyProject текущего проекта и отобразить их на префикс local:
xmlns:local="clr-namespace:MyNamespace"
Теперь, чтобы создать экземпляр класса в одном из этих пространств имен, вы используете префикс пространства имен:
<local:MyObject ...></local:MyObject>
Совет. Помните, что вы можете использовать любой префикс пространства имен, который хотите, до тех пор, пока он согласован по всему документу XAML. Однако префиксы sys и local обычно применяются при импорте пространства имен System и пространства имен для текущего проекта. Они используются на протяжении всей книги.
Предыдущая << 1 .. 26 27 28 29 30 31 < 32 > 33 34 35 36 37 38 .. 473 >> Следующая