Представим типичный пользовательский интерфейс. Есть несколько элементов управления, которые запускают некоторые повторяемые (за время жизни приложения) действия разной сложности. Чтобы сложные действия, такие как обращение к различным носителям, обращение к сети или сложное вычисление, не снижали отзывчивость интерфейса, они должны быть асинхронными. Дополнительно могут быть элементы управления, отменяющие асинхронно запущенное действие. Действие имеет свойство состояния (неактивно, запущено, завершено успешно, завершено с ошибкой, отменено), которое тем или иным образом отображается пользователю. Принятый в WPF, Silverlight и WinPhone шаблон проектирования MVVM диктует, чтобы такое «действие» было частью модели представления, давая возможность вызывать сервисы модели из пользовательского интерфейса без создания между ними жёсткой связи. К сожалению, такое «действие» в базовой библиотеке классов не реализовано. Ближайшие имеющиеся в библиотеке сущности, такие как задачи System.Threading.Tasks.Task, команды System.Windows.Input.ICommand и делегаты System.Delegate, не подходят: задачи всегда одноразовые и не могут представлять повторяемое действие, делегаты и команды не поддерживают отмену и не содержат свойств состояния, а команды вообще не могут быть асинхронными. Далее я предлагаю решение в виде небольшой библиотеки классов, дающей возможность легко использовать описанные «действия» в ваших приложениях.
Читать полностью »
Рубрика «XAML» - 5
Инфраструктура команд для вызова пользователем действий в шаблоне MVVM
2014-11-16 в 18:48, admin, рубрики: .net, ICommand, mvvm, wpf, XAML, асинхронность, ПрограммированиеСеминар и мини-хакатон по обновлению приложений до Windows Phone 8.1 в офисе Microsoft
2014-08-14 в 6:22, admin, рубрики: javascript, silverlight, windows, windows phone, XAML, мероприятие
Команда Microsoft рада пригласить вас на уникальный семинар и мини-хакатон, посвященный обновлению ваших приложений до Windows Phone 8.1 и созданию универсальных приложений!
На семинаре вы сможете познакомиться с новой Windows Phone 8.1, узнать, что такое универсальные приложения, какие сценарии существуют для обновления приложений, а также начать обновлять имеющиеся у вас приложения до версии 8.1 под руководством наших экспертов.
Семинар состоится 29 августа с 16:00 до 21:00 в офисе Microsoft, по адресу г. Москва, ул. Крылатская, д.17, к.1.
Читать полностью »
Применение XSLT преобразований для конвертации XAML между различными платформами
2014-07-30 в 9:09, admin, рубрики: .net, silverlight, wpf, XAML, xslt, Блог компании DevExpress, разработкаПлатформы WPF и Silverlight используют язык разметки XAML для описания элементов пользовательского интерфейса, шаблонов и стилей. Если вы разрабатываете одновременно под разные XAML платформы, то естественно, возникает желание иметь общие файлы разметки для этих платформ.
Разметка в WPF и Silverlight очень схожа, но имеются досадные отличия, которые сильно осложняют ее шаринг. В нашей компании эта проблема была решена несколько лет назад в виде внутреннего инструмента, который называется WPF2SL.
WPF2SL слишком специфичен, чтобы быть полезным широкой публике, поэтому мы не планируем его публиковать. В этой статье я расскажу об особенностях XSLT преобразований применительно к разметке XAML и о некоторых сложностях и особенностях, с которыми мы столкнулись.
Читать полностью »
Обновляем Windows Phone 8.0 приложение до Windows Phone 8.1(XAML)
2014-07-17 в 7:46, admin, рубрики: silverlight, Visual Studio, windows phone, windows store, WinRT, XAML, Блог компании Microsoft, разработка под windows phoneЭто третья статья из цикла, посвященного обновлению Windows Phone 8.0 приложений до версии 8.1. На этот раз, мы поговорим про самый сложный сценарий – обновление приложения Windows Phone 8.0 (Silverlight) до Windows Phone 8.1 (XAML). Этот процесс не такой прозрачный и понятный как в случае с Silverlight или Windows Store, где есть специальные действия в Visual Studio (Reterget), чтобы поменять сборки и ссылки на них. В нашем случае, придется пересобрать приложение в ручную для новой версии. Этим мы и займемся.
Читать полностью »
WPF: Привязка для свойств отличных от свойств зависимостей
2014-03-11 в 9:33, admin, рубрики: .net, binding, mvvm, wpf, XAML, интерфейсы, метки: binding, mvvm, wpf, XAMLВведение
WPF — замечательная технология, которую, не смотря на все ее недостатки, очень люблю. Тем не менее, часто приходится писать не разметку, а код, который помогает первой работать как надо. Хотелось бы этого избегать и писать чистый XAML, но до сих пор ни одно мое приложение сложнее простого не обходилось без различных хелперов (классов-помощников), написанных на C#. К счастью, есть распространенные случаи, где можно одним хелпером решить сразу группу проблем.
Речь ниже пойдет о привязке в обычных свойствах визуальных элементов, которые не являются свойствами зависимостей (dependecy properties). Штатными средствами WPF этого сделать не получится. Ко всему прочему, мы не можем узнать об изменениях такого свойства, кроме как подписавшись на специальное событие, что противоречит шаблону MVVM. Такие события для каждого свойства могут быть свои. Самый распространенный пример — это PasswordBox и его свойство Password. Так у нас сделать не получится:
<PasswordBox Password={Binding OtherProperty} />
Не будем вдаваться в подробности, зачем разработчики PasswordBox не разрешили привязываться к свойству пароля. Подумаем, что тут можно сделать.
Читать полностью »
WinPhone: пути к совершенству
2014-01-29 в 20:11, admin, рубрики: .net, XAML, Программирование, разработка под windows phone, метки: .net, c++, XAML, разработка под windows phoneВ этой статье я расскажу о том, как сделать не сложный, но интерактивный и функциональный графический редактор-рисовалку под Windows Phone. Думаю, даже опытные разработчики смогут найти для себя что-то интересное и новое. Уникальной фишкой редактора будет история, которую можно в буквальном смысле отматывать на нужнай момент с помощью ползунка-слайдера. И да, в завершение мы нарисуем радугу! Поехали…
Конечно же, я подготовил качественный пример.
Новые возможности профилирования Windows Store приложений в Visual Studio 2013
2014-01-20 в 6:03, admin, рубрики: Visual Studio, vs2013, windows, windows apps, windows store, XAML, Блог компании Microsoft, метки: c++, vs2013, windows apps, windows store, XAML
Производительность – одна из важнейших характеристика любого приложения, на ряду с функциональностью и дизайном. Она же является одной из распространенных причин неудачного завершения процесса сертификации и публикации приложения в Windows Store.
Хорошее приложение должно быть быстрыми, работать плавно и экономно расходовать аппаратные ресурсы. Для этого, производительности необходимо уделять внимание, так же, как дизайну и функциональным возможностям.
В Visual Studio 2013 появились новые возможности профилирования и анализа производительности, которые позволяют быстро находить распространенные узкие места в приложениях.
Читать полностью »
Разработка Windows 8.1 приложений на XAML/С#. Часть 5. Всплывающие окна и панели
2013-12-30 в 5:28, admin, рубрики: vs2013, windows, windows apps, windows store, XAML, Блог компании Microsoft, разработка, метки: c++, vs2013, windows apps, windows store, XAML
Сегодня речь пойдет о реализации всплывающих окон, меню и панелей в Windows 8.1 приложении.
Мы рассмотрим, какие возможности предлагает Windows 8.1 разработчику приложений для реализации всплывающих окон, панелей настроек и контекстных меню, а так же добавим все перечисленные возможности в приложение «Каталог товаров», разработанное в прошлых статьях.
Читать полностью »
Локализация ApplicationBar с помощью Binding
2013-12-22 в 13:26, admin, рубрики: windows phone, XAML, локализация интерфейса, разработка под windows phone, метки: windows phone, XAML, локализация интерфейса Когда я учился разрабатывать приложения на основе MVVM мне жутко не понравилось, что во многих статьях показано как ApplicationBar создается во ViewModel. Там же кнопки и элементы меню заполняется локализованными строками. Я долго искал решение, и оно было найдено.
Внимание! Статья описывает только решение проблемы локализации панели приложения и подразумевает что читатели знакомы с основами XAML, MVVM, связыванием данных и локализацией приложений.
Читать полностью »
Разработка Windows 8.1 приложений на XAML/С#. Часть 4. Поиск
2013-12-20 в 7:00, admin, рубрики: vs2013, windows, windows apps, windows store, XAML, Блог компании Microsoft, разработка, метки: c++, vs2013, windows apps, windows store, XAML
Одной из важных и необходимых функциональных возможностей для приложения, работающего с контентом, является поиск информации.
Сегодня мы рассмотрим, какие возможности предлагает Windows 8.1 разработчику Windows Store приложений для организации поиска, а так же добавим возможность поиска товаров в приложение «Каталог товаров», разработанное в прошлых статьях.
Читать полностью »