При работе с WPF/Silverlight, периодически приходится создавать кастомные DependencyProperty, в основном при создании контролов. Стандартный подход объявления и работы с ними не идеальный и имеет минусы, о которых будет сказано ниже. Соответственно, появилась идея упростить запись регистрации и работы с DependencyProperty.
Читать полностью »
Рубрика «silverlight» - 6
Упрощение регистрации и работы с DependencyProperty
2012-08-21 в 8:00, admin, рубрики: .net, silverlight, wpf, метки: .net, c++, silverlight, wpfИнтро
В XAML (SilverLight /Wpf /Metro) конвертеры используются для самых различных целей: приведение типов, форматирование строк, калькуляция скалярного значения сложного объекта. В рамках проекта мы можем создать очень много классов-конвертеров, решающих смежные задачи (вычисление состояния заказа и конвертация его в Visibility, конвертация состояния заказа в Cursor, конвертация булевого значения в Visibility/Invisibility и т.д.). Нетривиальная ситуация: мы написали конвертер для необычно сложного форматирования TimeSpan, и теперь требуется форматировать Duration таким же образом – необходимо писать аналогичный конвертер, но уже с предварительной распаковкой TimeSpan из Duration. Вариантов преобразования строк может быть множество, и для всех преобразований потребуется такое же множество конвертеров.
Естественно, стараясь обобщить код, мы разбиваем конвертацию на более мелкие процедуры, и, как следствие, у нас встречаются классы-конвертеры, состоящие из двух строчек кода, используемые только один раз.
Многие не знают, что для упрощения ситуации и уменьшения количества строчек кода, возможно комбинирование преобразований не в классах конвертеров, но в XAML разметке, путем создания цепочек конвертеров. Для этого необходимо написать свой абстрактный конвертер, от которого мы будем наследовать все наши преобразования.
Читать полностью »
Доступ к картинкам в изолированом хранилище
2012-06-27 в 8:07, admin, рубрики: silverlight, windows phone, windows phone 7, WP7, wp7 development, разработка под windows phone, метки: windows phone, windows phone 7, wp7, wp7 developmentПривет читатели!
Выполнив несколько проектов на wp7, я столкнулся с часто возникающей задачей: хранения изображений в изолированном хранилище и последующей отрисовкой этих изображений. При просмотре тематических блогов и статей я не обнаружил ничего кроме самого прямого и простого ресурсоемкого способа это сделать. Как оказывается — так делают все! Итак, давайте поговорим об этом способе и о моем небольшом отркытии.
Читать полностью »
Доступ к картинкам в изолированном хранилище
2012-06-27 в 8:07, admin, рубрики: silverlight, windows phone, windows phone 7, WP7, wp7 development, разработка под windows phone, метки: windows phone, windows phone 7, wp7, wp7 developmentПривет читатели!
Выполнив несколько проектов на wp7, я столкнулся с часто возникающей задачей: хранения изображений в изолированном хранилище и последующей отрисовкой этих изображений. При просмотре тематических блогов и статей я не обнаружил ничего кроме самого прямого и простого ресурсоемкого способа это сделать. Как оказывается — так делают все! Итак, давайте поговорим об этом способе и о моем небольшом отркытии.
Читать полностью »
Управление состояниями UI при разработке под Windows Phone
2012-05-30 в 17:00, admin, рубрики: .net, mvvm, silverlight, windows phone 7, WP7, разработка под windows phone, метки: .net, mvvm, silverlight, windows phone 7, wp7Недавно нашей командой (Sly Lamb) был выпущен клиент для сервиса Pruffi.ru под Windows Phone. Во время разработки у нас возник вопрос – как отображать пользователю список вакансий, который может находиться в нескольких состояниях.
В этой статье мы хотим показать легкий механизм изменения состояния отображения элементов при помощи Expression Blend и паттерна MVVM. Пример будет приведен с использованием фреймворка MVVM Light Toolkit, но думаю, различия с другими должны быть минимальны. Читать полностью »
Новый навигатор по примерам кода Microsoft All-In-One Code Framework, MSDN, Windows 8 и многое другое
2012-04-27 в 6:39, admin, рубрики: .net, silverlight, Windows 8, WinRT, Блог компании Microsoft, примеры кода, разработка, метки: .net, silverlight, Windows 8, winrt, примеры кодаЯ уже рассказывал на habr о бесплатной централизованной библиотеке кода: Microsoft All-In-One Code Framework.
Кратко напомню, что это такое: целью проекта Microsoft All-In-One Code Framework является предоставление примеров кода для типичных задач для всех технологий разработки Microsoft. При этом, команда проекта не выдумывает эти примеры из воздуха. Для того, чтобы определить какие примеры необходимы, просматриваются форумы разработчиков, социальные медиа и обращения в службу поддержки Microsoft. На основании всех этих запросов, для наиболее часто встречающихся, в библиотеку публикуются примеры кода.
Подобная библиотека фактически бесполезна без возможности удобной навигации и поиска по примерам кода. И разработчики библиотеки сразу же предоставили эту возможность в виде отдельного приложения и дополнения к Visual Studio. Приложение и дополнение предоставляли удобный способ работы с примерами из All-In-One Code Framework, но на сайтах Microsoft есть много других примеров кода, которые не входят в All-In-One Code Framework, и доступ к которым было бы удобно получить находясь внутри одной программы. Думаю, что я был не единственным, кому в голову приходила такая мысль.
Пару недель назад была выпущена новая версия навигатора по примерам кода, который позволят получить доступ к более 3500 примеров, включая примеры из MSDN Code Gallery и официальные примеры Windows 8.
Читать полностью »
Создание Attached Property для BusyIndicator шаг за шагом
2012-04-17 в 5:54, admin, рубрики: .net, attached properties, binding, silverlight, wpf, XAML, разработка, метки: attached properties, binding, c++, silverlight, wpf, XAMLДанная статья является продолжением статьи Автоматический BusyIndicator для асинхронных операций и не только.
Автоматический BusyIndicator для асинхронных операций и не только
2012-04-17 в 5:53, admin, рубрики: .net, binding, silverlight, wpf, XAML, разработка, метки: binding, c++, silverlight, wpf, XAML Использование такого компонента как BusyIndicator привнесит в наше приложение приятные (индикация процесса) и полезные (блокировка элемента управления) качества. Однако до последнего времени я редко использовал его, т.к. при асинхронном получении источника данных приходилось постоянно писать дополнительный код для включения/выключения. При синхронной работе ситуация вроде как упрощается, но использование MVVM-модели всё-равно требует дополнительных телодвижений. Особенно, если BusyIndicator
добавляется в самом конце разработки формы.
Поэтому, я решил максимально автоматизировать этот процесс, чтобы мне не приходилось писать ни строчки кода. Итак:
Читать полностью »
Дайджест новых материалов на русском MSDN за март
2012-04-02 в 13:02, admin, рубрики: microsoft, msdn, sharepoint, silverlight, Visual Studio, windows azure, windows phone, Блог компании Microsoft, облачные технологии, метки: msdn, sharepoint, silverlight, Visual Studio, windows azure, windows phone, облачные технологии
Уважаемые хабрачитатели!
Ниже приведена подборка подготовленных и опубликованных на MSDN материалов за март
Metro-дизайн
Платформа Windows Phone
- Ландшафт приложений для Windows Phone
- Знакомство с Windows Phone
- Технологии повышения производительности для Windows Phone
Разработка приложений для Windows Phone
Понимание XAML
2012-03-30 в 11:43, admin, рубрики: .net, silverlight, windows phone 7, wpf, XAML, разработка под windows phone, метки: silverlight, windows phone 7, wpf, XAMLДля кого эта статья: для людей, которые только начинают своё знакомство с технологиями использующими XAML. Чтобы не усложнять статью, я не касаюсь многих деталей вроде Markup Extensions, управления ресурсами и т.п. Прочитав данную статью, я надеюсь, вы сможете понять что происходит под капотом XAML парсера и более чётко представлять как из вашего текстового документа получается граф объектов в памяти, с различными свойствами.
XAML — это язык разметки, который появился вместе с первой версией WPF от Microsoft. Сейчас он также используется в Silverlight и Windows Phone 7 (сути тот же Silverlight). Таким образом, сейчас довольно много людей активно используют XAML. Однако для эффективной работы полезно будет понять концепции, которые стоят за я языком, чтобы отдельные конструкции не казались странными.
Читать полностью »