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

1 ... 351 352 353 [ 354 ] 355 356 357 ... 396


public partial class Windowl : Window {

public Windowl0

InitializeComponent ();

private void toggleButton Click(object sender, RoutedEventArgs e) {

Storyboard spinStoryboard = Resources [ Spin ] as Storyboard; if (spinStoryboard != null)

if (spinStoryboard.GetlsPaused(this)) {

spinStoryboard.Resume(this);

else

spinStoryboard.Pause(this);

5. Запустите приложение и попробуйте повключать, поостанавливать и поперек-лючать анимацию. На рис. 34.6 показан пример.


Рис. 34.6. Пример работы с анимацией

6. Создайте новое WPF-приложение типа браузера (WPF Browser) по имени Ch34Ex01Web и сохраните его в каталоге С: \BegVCSharp\Chapter34.

7. Измените значение атрибута Title элемента <Раде> в Pagel.xaml на Color Spinner Web.

8. Откройте файл Windowl .xaml из приложения Ch34Ex01 и скопируйте весь код из элемента <Window> в этом файле в элемент <Раде> в Pagel .xaml.

9. Замените элементы <Window. Resources>, <Window. Triggers> и <Window. Background> на элементы <Page .Resources>, <Page. Triggers> и <Page. Background> соответствующим образом (не забудьте также изменить начальные и конечные дескрипторы для этих элементов).



10. Удалите пять элементов <Ellipse.BitmapEf fect> и их содержимое из Pagel .xaml.

11. Скопируйте обработчик событий toggleButtonClick () и оператор using для пространства имен System.Windows .Media .Animation из файла Windowi .xaml. cs в файл Pagel. xaml. cs.

12. Запустите приложение Ch34Ex0lWeb. Ha рис. 34.7 показан результат, который должен получиться.

Ш C;\BegVCShirp\Chipl*r34\Ch34Ex01W b\ChJ4E)t0lW#bmVDebugCh34 (( 1 C:\BegVCSh p\Ch 34\Ch34CiteiW ♦t X I I ii.fSforth

4 0 Ch34Ex01Web


Computer Protected Mode: Oft

Puc. 34.7. Приложение Ch34Ex01Web в действии

Описание полученных результатов

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

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

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

□ При необходимости над пользовательским интерфейсом на базе XAML-кода можно получать полный контроль из отделенного кода.



Еще мы показали, как использовать тот же код, что и в настольном приложении, в Web-приложении. Несколько изменений (каких именно - мы расскажем позже) все-таки потребовалось, но основные функциональные возможности выглядели в обеих средах одинаково.

В коде приведенного приложения мы продемонстрировали многие из возможностей WPF для ознакомления с некоторыми ключевыми приемами. Начнем мы с анализа настольного приложения, а потом разберемся с теми изменениями, которые потребовалось внести для создания его Web-версии. В первую очередь давайте взглянем на XAML-файл настольного приложения Windowl. xaml и самый высокоуровневый элемент в нем:

<Window

xmlns= http: schemas.microsoft.com/winfx/2ОО6/xaml/presentation xmlns:x= http: schemas.microsoft.com/winfx/2006/xaml x:Class= Ch34Ex01.Windowl

Title= Color Spinner Height= 370 Width= 270 > </Window>

Элемент <Window>, используется для определения окна. Приложение могло бы состоять из нескольких окон, каждое из которых тогда бы содержалось в отдельном XAML-файле. Это, однако, вовсе не означает, что в XAML-файле всегда определяется только окно: в XAML-файлах могут также содержаться пользовательские элементы управления, кисти, другие ресурсы, Web-страницы и многое другое. В проекте Ch34Ex01, например, присутствует даже такой XAML-файл, в котором содержится определение самого приложения. Называется этот файл Арр. xaml. О нем и определении приложения более подробно будет рассказываться позже в этой главе.

Что касается файла Windowl .xaml, то в нем нужно обратить внимание на то, что в элементе <Window> содержатся кое-какие довольно понятные атрибуты. Первые два отвечают за объявление пространств имен: один за объявление глобального пространства имен, которое должно использоваться для XML, а другой за объявление пространства имен X. Оба они являются существенно важными для работы WPF и определяют словарь для синтаксиса XAML. Далее идет атрибут Class, взятый из пространства имен X. Этот атрибут связывает элемент <Window> в XAML-файле с определением частичного класса в файле отделенного кода, который в данном случае называется Ch34Ex01 .Window. Это напоминает способ, которым в ASP.NET используется класс для страницы, и позволяет файлу отделенного кода иметь точно такую же модель кода, как и у XAML-файла, вместе со всеми содержащимися в нем внутри XAML-элементов определениями элементов управления и т.д. Обратите внимание на то, что атрибут х: Class может применяться только на уровне корневого элемента в XAML-файле.

Три других атрибута -Title, Height и Width - задают текст, отображаемый в заголовке окна, и размеры (в пикселях), которые должны использоваться для визуализации окна. Эти атрибуты отображаются на свойства класса System.Windows .Window, производным от которого и является класс Ch34Ex01 .Window.

У класса System. Windows .Window есть еще несколько других свойств, которые позволяют определять дополнительные детали. Многие из них сложнее тех трех, что были перечислены выше - т.е., например, они не имеют вид простых строк или чисел. Синтаксис XAML позволяет использовать вложенные элементы для указания значения для этих свойств.

Синтаксис, который в XAML нужно использовать для определения объектов, свойств и содержимого, более подробно будет описан позже в этой главе, в разделе Синтаксис ХАМП.



1 ... 351 352 353 [ 354 ] 355 356 357 ... 396

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