Каталог статей

Как выучить xaml

Мои первые советы по XAML для универсальной платформы Windows

Я недавно познакомился с технологиями пользовательского интерфейса от Microsoft. Я никогда не использовал Windows Framework (WPF) поверх .net и никогда не использовал Silverlight в Интернете. В прошлом году я впервые попробовал эти инструменты через фреймворк XAML, который является частью “Универсальной платформы Windows” (UWP) – то есть слоя пользовательского интерфейса Windows 10 (и Win8). XAML постоянно развивался со времен WPF, и потребовалось некоторое время, чтобы действительно понять различные основные эпохи этой технологии, тем более что в UWP-версии XAML убраны некоторые старые синтаксисы во имя эффективности на мобильных платформах, лучшей проверки ошибок во время компиляции, а также читабельности кода и простоты использования. Технология достаточно старая, поэтому большая часть поисковых запросов Google и результатов StackOverflow неприменима на современной платформе UWP.

Мои советы

Итак, какими были несколько моих первых уроков при использовании XAML на UWP?

Предпочитайте x:Bind привязке

Основная причина: x:Bind дает вам проверки во время компиляции и лучшую производительность. Имейте в виду небольшие различия:

Отзывчивый дизайн

Комбинация VisualState и AdaptiveTriggers – это довольно мощный способ скрывать/показывать, перемещать или изменять размер различных частей пользовательского интерфейса. Единственное неудобство заключается в том, что вы не можете изменить стиль в ответ на изменение размера окна (или другой триггер), а только явно изменить свойства каждого отдельного элемента управления. Я попробовал одно обходное решение: создать фиктивный ViewModel DependencyProperty, который обновляется триггером, а затем привязать стили к этому свойству. Это работает, но не может быть предварительно просмотрено в XAML Designer, что мне показалось полезным. Вместо этого я создал фиктивный невидимый элемент управления, настроил триггеры на изменение этого элемента управления, а затем привязал стили к свойствам невидимого элемента управления. Это работает как “вживую”, так и в XAML Designer, даже обновляется вживую при изменении разрешения целевого устройства XAML Designer. Я нашел эту ссылку полезной по этому вопросу.

Выражения в вызовах x:Bind

В Windows Anniversary Edition (осень 2016 года) компания Microsoft добавила несколько новых замечательных возможностей, которые позволяют использовать действительно красивый и чистый синтаксис в XAML без использования конвертеров. Теперь вы можете сделать следующее при условии, что ваш класс ViewModel реализует функции xAnd и xMult:

Обратите внимание на несколько моментов:

XAML Designer – встроенный в Visual Studio визуальный редактор XAML – давно не пользовался особой любовью. Многие вещи сломаны, и он не может обрабатывать некоторые полезные вещи. И если вы не приложите усилий для правильной настройки XAML, страница/контрол может быть абсолютно нечитаемой. Почему стоит предпочесть XAML Designer?

Время компиляции для XAML – особенно если речь идет о генерации кода на C++ – просто зверское. Вы можете выполнять итерации намного быстрее, если избежите компиляции.

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

Это гораздо более быстрый способ изучить XAML и даже изучить события/свойства, о которых вы не знали.

Как сделать XAML Designer более удобным в использовании:

Используйте AdaptiveTriggers для отзывчивого дизайна, а не логику ViewModel или View

Exit mobile version