Статьи

Выражение Blend Behaviors

В моей последней статье « Проектирование с использованием Microsoft Expression Blend» мы изучили основы проектирования приложения Microsoft Silverlight с использованием Expression Blend. Мы взяли прототип, встроенный в SketchFlow, в моей первой статье ( Быстрое прототипирование с помощью SketchFlow ) и создали приложение Silverlight 3, которое интегрируется с историей браузера. Затем мы обратились к поддержке Blend для выборочных данных. Наконец, мы рассмотрели стилизацию элементов интерфейса и использование шаблонов в XAML.

В моей заключительной статье мы продолжим наше примерное портфолио-приложение. Мы узнаем о раскадровках и о том, как создавать анимацию. Затем мы вернемся к поведению и узнаем, как использовать его для настройки интерактивности в нашем приложении без написания кода. После этой статьи я передам слово Тэтэму Одди, который расскажет вам о возможностях родственного продукта Expression Blend: Expression Web .

Как только вы закончите читать, не забудьте проверить нашу статью Викторина, чтобы проверить себя.

Прежде чем мы начнем, мы должны вспомнить, что произошло в Microsoft-land с момента последней статьи. Microsoft недавно провела свою ежегодную конференцию MIX в Лас-Вегасе, где было много объявлений о Expression и Silverlight.

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

  • Вне браузера и поддержка мультисенсорного ввода открывают некоторые интересные возможности для выделенного опыта, такого как киоски и приложения для планшетов

  • Поддержка веб-камеры и микрофона позволит использовать множество новых приложений, таких как дополненная реальность.

  • Колесо мыши, щелчок правой кнопкой мыши и поддержка перетаскивания — это особенно хорошая новость для дизайнеров бизнес-приложений, таких как я

  • Уведомления «Toast» с использованием родной операционной системы

  • Поддержка Google Chrome теперь официально

С Silverlight 4 поставляется релиз-кандидат Expression Blend 4. В Blend 4 также есть несколько интересных новых функций, в том числе:

  • Поддержка Silverlight 4 и Windows Presentation Foundation (WPF) 4

  • Некоторые долгожданные основные формы, такие как многоугольник, стрелка и дуга

  • Лучшее управление стилями эскиза в SketchFlow

  • Больше контроля над SketchFlow Animations

  • Ряд новых поведений, в том числе для управления сенсорными интерфейсами

  • Хранилище данных для хранения глобальных переменных и других состояний, которые влияют на прототип SketchFlow

Для этой статьи я перешел на использование Expression Blend 4.

Наконец, еще одно важное объявление от MIX10 состояло в том, что Silverlight станет основной платформой для разработки пользовательского интерфейса для Windows Phone. Это фактически означает, что любой, кто в настоящее время является дизайнером WPF или Silverlight, теперь также является дизайнером Windows Phone.

Между тем, наша непосредственная задача — заполнить заявку на портфолио. Первая остановка: реальные данные.

В прошлой статье мы использовали функцию выборочных данных Blend, чтобы сгенерировать некоторые данные-заполнители для представления списка проектов для нашего портфеля. Вот так мы создали наш список латинского текста и рисунков стульев. Теперь пришло время добавить некоторые реальные данные проекта.

Существует несколько способов получения информации о проекте. Мы могли бы:

  1. получить информацию из веб-службы, вероятно, в виде XML

  2. получить XML-файл и проанализировать его с помощью функции Linq в .NET на основе SQL

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

  4. просто вставьте данные в наш проект (может включать текст и изображения, или только текст, с изображениями, на которые ссылается URL)

Хотя третий вариант, вероятно, рекомендуется, так как эта статья фокусируется на дизайне, а не на разработке, мы собираемся использовать более простой четвертый вариант.

Панель данных в Blend позволяет нам добавлять различные источники данных, в том числе импортировать один из XML. Панель показана на рисунке 2 «Использование панели данных для импорта источника данных XML» .


Обратите внимание, что Blend по-прежнему называет этот тип данных «образцом данных», но он отлично работает для скромного объема информации, который нам необходим для нашего приложения. Если бы у нас было больше данных, мы, возможно, захотим быть более умными в получении их, например, после загрузки основного приложения.

Как мы видели в предыдущей статье, вы можете привязать такие элементы, как ListBox к выборочным (или оперативным) данным, перетаскивая определение данных с панели « Данные» . Это показано на рисунке 5, «Перетащите данные из панели данных, чтобы связать их с целевым элементом» .


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

Привязка новых данных проекта к панели сведений стала еще проще. В прошлой статье мы создали StackPanel чтобы содержать все элементы в нашем подробном представлении. Если мы выберем StackPanel и посмотрим на панель « Данные» , то увидим, что для StackPanel свой DataContext для образца коллекции, которую мы создали. Нам нужно изменить этот DataContext чтобы он указывал на наш новый источник данных XML.


Нам просто нужно изменить DataContext чтобы детали StackPanel указывали на наш новый источник данных. Blend позволяет нам просто перетащить новый контекст данных с панели « Данные» и StackPanel его на StackPanel . Нам просто нужно помнить, чтобы сначала переключить панель « Данные» в режим сведений, чтобы мы привязали текущий выбор из коллекции, а не весь список.

Когда ваша страница заполняется, часто проще работать с объектом на панели « Объекты и временная шкала» , а не с объектом на монтажной панели, как показано на рисунке 8 «Работа с панелью« Объекты и временная шкала »» .