|
Программирование >> Программирование с использованием ajax
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 нужно использовать для определения объектов, свойств и содержимого, более подробно будет описан позже в этой главе, в разделе Синтаксис ХАМП.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |