Программирование >>  Программирование с использованием ajax 

1 ... 355 356 357 [ 358 ] 359 360 361 ... 396


Ha рис. 34.8 показано, как с помощью гибкого шаблона Карэн можно переключиться на вывод ХВАР.

k [хВАР Debug Any CPU

jDcbug Release

ХВАР Release Configuration Manager..

Puc. 34.8. Переключение в режим вывода ХВАР

Единственное, что придется делать вручную, так это отключать те функциональные возможности, которые не доступны в ХВАР-приложениях, работающих в среде с уровнем частичного доверия. Например, в таких приложениях нельзя применять растровые эффекты. Полный перечень функциональных возможностей, которые допускается и не допускается использовать в среде с частичным уровнем доверия, можно найти в документации MSDN под заголовком Windows Presentation Foundation Partial Trust Security (Обеспечение безопасности для сред с уровнем частичного доверия в WPF).

Объект приложения

в WPF в состав большинства приложений (включая все ХВАР-приложения, а также настольные приложения на базе шаблона WPF Application) входит экземпляр класса, унаследованного от System.Windows .Application. В примере приложения, которое демонстрировалось ранее, за определение этого объекта отвечали файлы Арр. xaml и Арр.xaml .CS. В частности, файл Арр.xaml приложения Ch34Ex01 выглядел так:

<Application x:Class= Ch34Ex01.Арр xmlns= http: schemas.microsoft.com/wmfх/2006/xaml/presentation xmlns:x= http: schemas.microsoft.com/winfx/2006/xaml StartupUri= Windowl.xaml > <Application.Resources>

</Application.Resources> </Application>

Синтаксис элемента <Application> похож на синтаксис рассмотренного ранее элемента <Window> и подобно ему предусматривает использование атрибута х:Class для связывания кода с определением частичного класса в файле отделенного кода.

Определяемый в этом коде объект является входной точкой WPF-приложения. У этого объекта может существовать только один экземпляр, доступ к которому может производиться только через статическое свойство Application. Current. Объект прможения является чрезвычайно полезным по следующим причинам.

□ Он представляет многочисленные события, генерируемые на определенных этапах жизненного цикла приложения. К ним относится событие LoadCompleted, которое уже показывалось ранее и которое возбуждается при загрузке и визуализации приложения, событие DispatcherUnhandledException, которое происходит при выдаче необработанного исключения, и многие другие.

□ Он содержит методы, которые можно использовать для установки или загрузки cookie-наборов, обнаружения и загрузки ресурсов и т.д.

□ Он обладает несколькими свойствами, которые можно применять для получения доступа к, например, ресурсам, находящимся в области действия приложения (о которых более подробно будет рассказываться чуть позже в этой главе, в разделе Статические и динамические ресурсы ), и окнам в приложении.



События, генерируемые объектом приложения, пожалуй, являются наиболее полезной функциональной возможностью в этом списке и, скорее всего, ими придется пользоваться наиболее часто.

Основные сведения об элементах управления

в WPF предоставляется широкий спектр элементов управления, которые можно использовать для создания приложений. В настоящей главе дается общий обзор технологии WPF и того, что с ее помощью можно делать, поэтому вместо рассмотрения каждого из элементов управления WPF по отдельности мы будем изучать их в действии.

Ниже приведен общий список всех элементов управления, которые предлагаются в WPF:

Border

Image

ScrollViewer

BulletDecorator

Label

Separator

Button

ListBox

Slider

CheckBox

ListView

StatusBar

ComboBox

Menu

TabControl

ContextMenu

PasswordBox

TextBlock

DocumentViewer

Popup

TextBox

Expander

ProgressBar

ToolBar

FlowDocumentPageViewer

PrintDialog

ToolTip

FlowDocumentReader

RadioButton

TreeView

FlowDocumentScrollViewer

RepeatButton

Viewbox

Frame

RichTextBox

GroupBox

ScrollBar

В этот перечень не вогили элементы управления WPF, применяемые для компоновки, потому что о них будет отдельно рассказываться позже в этой главе.

Некоторые из перечисленных здесь элементов управления имеют очень знакомые имена и на самом деле делают практически то же самое, что и их аналоги в приложениях Windows Forms и ASP.NET. Например, уже показывалось, как элемент управления Button может использоваться для визуализации кнопки. Остальные элементы управления выглядят менее знакомо и потому, чтобы понять, на что они способны, не помешает с ними поэкспериментировать.

Эти элементы управления первоначально имеют очень простой внешний вид. Для извлечения из них максимальной пользы, их нужно подвергать стилизации, где, пожалуй, и проявляется истинная мощь WPF, как можно будет увидеть позже в этой главе. Помимо стилизации, существует еще несколько других средств, которые можно применять для элементов управления WPF. В этом разделе будет рассказано о слудеющим из них:

□ свойства зависимостей;

□ подключаемые свойства;

□ маршрутизируемые события.

Как и при разработке других настольных и Web-приложений, допускается создавать свои собственные элементы управления. При создании собственного элемента управления можно пользоваться всеми описываемыми здесь средствами. В последующих разделах можно будет увидеть примеры их реализации.



Свойства зависимостей

Свойство зависимости (dependency property) - это свойство особого типа, которое используется в WPF повсюду, особенно в элементах управления, и предоставляет функциональность, расширяющую возможности обычных свойств .NET. Чтобы проиллюстрировать это, рассмотрим обычное свойство .NET. При создании классов в .NET свойства, как правило, реализуются с использованием очень простого кода, подобного показанному ниже:

private string aStringProperty; public string AStringProperty {

get {

return aStringProperty;

set {

aStringProperty = value;

Здесь реализуется общедоступное свойство, основанное на приватном поле. Такая простая реализация прекрасно подходит для большинства целей, но не включает никакое особой функциональности, кроме базовой возможности получения доступа к состоянию. Например, при желании добавить свойство AStringProperty в один элемент управления (ControlА) и сделать так, чтобы другой элемент управления (ControlВ) реагировал на изменения в этом свойстве, потребовалось бы выполнить следующие шаги.

1. Добавить свойство AStringProperty в элемент управления ControlA с помощью показанного выше кода.

2. Добавить в элемент управления ControlA событие.

3. Добавить в элемент управления ControlA метод для генерации этого события.

4. Добавить код для установки функции set свойства AStringProperty в ControlA таким образом, чтобы она вызывала этот генерирующий событие метод.

5. Добавить в элемент управления ControlB код для подписки на событие, предоставляемое элементом управления ControlA.

Рассматривать отдельно требуемый для выполнения всех этих шагов код нет никакой необ ходимости, поскольку он уже несколько раз встречался ранее в книге.

Проблема такого подхода состоит в том, что не существует никаких определенных стандартов, которым можно было бы следовать для достижения этого результата. Разные разработчики могут добавить код, приводящий к получению такого же результата, разными способами. Более того, он требует определять все свойства, об изменениях в которых может понадобиться получать уведомления, во время разработки элементов управления.

Для устранения этой проблемы в WPF как раз и предлагается заменять определение простого свойства, вроде того, что использовалось в предыдущем коде, свойством зависимости и затем использовать формализованные и структурированные приемы для предоставления уведомлений обо всех происходящих в нем изменениях. Свойство зависимости представляет собой свойство, которое регистрируется в системе свойств WPF как предусматривающее расширенную функциональность. Эта расширенная



1 ... 355 356 357 [ 358 ] 359 360 361 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика