Рубрика «XAML» - 5

Представим типичный пользовательский интерфейс. Есть несколько элементов управления, которые запускают некоторые повторяемые (за время жизни приложения) действия разной сложности. Чтобы сложные действия, такие как обращение к различным носителям, обращение к сети или сложное вычисление, не снижали отзывчивость интерфейса, они должны быть асинхронными. Дополнительно могут быть элементы управления, отменяющие асинхронно запущенное действие. Действие имеет свойство состояния (неактивно, запущено, завершено успешно, завершено с ошибкой, отменено), которое тем или иным образом отображается пользователю. Принятый в WPF, Silverlight и WinPhone шаблон проектирования MVVM диктует, чтобы такое «действие» было частью модели представления, давая возможность вызывать сервисы модели из пользовательского интерфейса без создания между ними жёсткой связи. К сожалению, такое «действие» в базовой библиотеке классов не реализовано. Ближайшие имеющиеся в библиотеке сущности, такие как задачи System.Threading.Tasks.Task, команды System.Windows.Input.ICommand и делегаты System.Delegate, не подходят: задачи всегда одноразовые и не могут представлять повторяемое действие, делегаты и команды не поддерживают отмену и не содержат свойств состояния, а команды вообще не могут быть асинхронными. Далее я предлагаю решение в виде небольшой библиотеки классов, дающей возможность легко использовать описанные «действия» в ваших приложениях.
Читать полностью »

image

Команда Microsoft рада пригласить вас на уникальный семинар и мини-хакатон, посвященный обновлению ваших приложений до Windows Phone 8.1 и созданию универсальных приложений!

На семинаре вы сможете познакомиться с новой Windows Phone 8.1, узнать, что такое универсальные приложения, какие сценарии существуют для обновления приложений, а также начать обновлять имеющиеся у вас приложения до версии 8.1 под руководством наших экспертов.

Семинар состоится 29 августа с 16:00 до 21:00 в офисе Microsoft, по адресу г. Москва, ул. Крылатская, д.17, к.1.
Читать полностью »

Платформы WPF и Silverlight используют язык разметки XAML для описания элементов пользовательского интерфейса, шаблонов и стилей. Если вы разрабатываете одновременно под разные XAML платформы, то естественно, возникает желание иметь общие файлы разметки для этих платформ.

Разметка в WPF и Silverlight очень схожа, но имеются досадные отличия, которые сильно осложняют ее шаринг. В нашей компании эта проблема была решена несколько лет назад в виде внутреннего инструмента, который называется WPF2SL.

WPF2SL слишком специфичен, чтобы быть полезным широкой публике, поэтому мы не планируем его публиковать. В этой статье я расскажу об особенностях XSLT преобразований применительно к разметке XAML и о некоторых сложностях и особенностях, с которыми мы столкнулись.
Читать полностью »

Обновляем Windows Phone 8.0 приложение до Windows Phone 8.1(XAML)

Это третья статья из цикла, посвященного обновлению Windows Phone 8.0 приложений до версии 8.1. На этот раз, мы поговорим про самый сложный сценарий – обновление приложения Windows Phone 8.0 (Silverlight) до Windows Phone 8.1 (XAML). Этот процесс не такой прозрачный и понятный как в случае с Silverlight или Windows Store, где есть специальные действия в Visual Studio (Reterget), чтобы поменять сборки и ссылки на них. В нашем случае, придется пересобрать приложение в ручную для новой версии. Этим мы и займемся.
Читать полностью »

Введение

WPF — замечательная технология, которую, не смотря на все ее недостатки, очень люблю. Тем не менее, часто приходится писать не разметку, а код, который помогает первой работать как надо. Хотелось бы этого избегать и писать чистый XAML, но до сих пор ни одно мое приложение сложнее простого не обходилось без различных хелперов (классов-помощников), написанных на C#. К счастью, есть распространенные случаи, где можно одним хелпером решить сразу группу проблем.

Речь ниже пойдет о привязке в обычных свойствах визуальных элементов, которые не являются свойствами зависимостей (dependecy properties). Штатными средствами WPF этого сделать не получится. Ко всему прочему, мы не можем узнать об изменениях такого свойства, кроме как подписавшись на специальное событие, что противоречит шаблону MVVM. Такие события для каждого свойства могут быть свои. Самый распространенный пример — это PasswordBox и его свойство Password. Так у нас сделать не получится:

<PasswordBox Password={Binding OtherProperty} />

Не будем вдаваться в подробности, зачем разработчики PasswordBox не разрешили привязываться к свойству пароля. Подумаем, что тут можно сделать.
Читать полностью »

В этой статье я расскажу о том, как сделать не сложный, но интерактивный и функциональный графический редактор-рисовалку под Windows Phone. Думаю, даже опытные разработчики смогут найти для себя что-то интересное и новое. Уникальной фишкой редактора будет история, которую можно в буквальном смысле отматывать на нужнай момент с помощью ползунка-слайдера. И да, в завершение мы нарисуем радугу! Поехали…

Конечно же, я подготовил качественный пример.

image
Читать полностью »

image

Производительность – одна из важнейших характеристика любого приложения, на ряду с функциональностью и дизайном. Она же является одной из распространенных причин неудачного завершения процесса сертификации и публикации приложения в Windows Store.

Хорошее приложение должно быть быстрыми, работать плавно и экономно расходовать аппаратные ресурсы. Для этого, производительности необходимо уделять внимание, так же, как дизайну и функциональным возможностям.

В Visual Studio 2013 появились новые возможности профилирования и анализа производительности, которые позволяют быстро находить распространенные узкие места в приложениях.
Читать полностью »

image

Сегодня речь пойдет о реализации всплывающих окон, меню и панелей в Windows 8.1 приложении.

Мы рассмотрим, какие возможности предлагает Windows 8.1 разработчику приложений для реализации всплывающих окон, панелей настроек и контекстных меню, а так же добавим все перечисленные возможности в приложение «Каталог товаров», разработанное в прошлых статьях.
Читать полностью »

Когда я учился разрабатывать приложения на основе MVVM мне жутко не понравилось, что во многих статьях показано как ApplicationBar создается во ViewModel. Там же кнопки и элементы меню заполняется локализованными строками. Я долго искал решение, и оно было найдено.
Внимание! Статья описывает только решение проблемы локализации панели приложения и подразумевает что читатели знакомы с основами XAML, MVVM, связыванием данных и локализацией приложений.
Читать полностью »

image

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

Сегодня мы рассмотрим, какие возможности предлагает Windows 8.1 разработчику Windows Store приложений для организации поиска, а так же добавим возможность поиска товаров в приложение «Каталог товаров», разработанное в прошлых статьях.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js