Главная » Разработка для Windows Phone 7

Трансформации матриц Windows Phone 7

Добавлено Дата: 30 December, 2011 категория: Разработка для Windows Phone 7

Традиционно двухмерные графические системы поддерживают операции, называемые трансформациями. По сути своей, это математические формулы, применяемые к координатам (x, y) для получения новых координат (x, y). Полностью обобщённые трансформации потенциально могут быть очень сложными, но двухмерные среды разработки графических элементов часто ограничиваются подмножеством трансформаций, называемым аффинными («не бесконечными») преобразованиями. К таким преобразованиям относятся и линейные трансформации.

Читать »

Полилинии и произвольные кривые

Добавлено Дата: 30 December, 2011 категория: Разработка для Windows Phone 7

Элемент Line выглядит просто, а вот разметка для него несколько раздута. Сократить разметку для отрисовки одиночной линии можно, применив не Line, а Polyline (Полилиния):

<Grid Background="LightCyan">

<Polyline Points="100 300 200 50" Stroke="Blue" StrokeThickness="5" /> <Polyline Points="50 100 300 200" Stroke="Red" StrokeThickness="30" />

Читать »

Множество Мандельброта

Добавлено Дата: 30 December, 2011 категория: Разработка для Windows Phone 7

В 1980 году Бенуа Мандельброт (1924-2010), рожденный в Польше французский и американский математик, который работал на IBM, впервые получил графическую визуализацию рекурсивного уравнения с комплексными числами, которое было выведено несколько ранее. Эта визуализация выглядела примерно следующим образом:

Читать »

Простые часы (очень простые часы)

Добавлено Дата: 30 December, 2011 категория: Разработка для Windows Phone 7

До сих пор в данной главе были рассмотрены два события Silverlight, SizeChanged и OrientationChanged, но использовались они по-разному. Событие SizeChanged я ассоциировал с обработчиком события в XAML, а для события OrientationChanged я переопределил эквивалентный метод OnOrientationChanged.

Читать »

Элементы и элементы управления Windows Phone 7

Добавлено Дата: 29 December, 2011 категория: Разработка для Windows Phone 7

ApplicationBar существует абсолютно независимо от обычной иерархии классов Silverlight в особом разделе Silverlight для Windows Phone. Далее в данной главе мы вернемся к более привычному царству классов.

Большинство визуальных объектов, обсуждаемых до сих пор в данной книге, часто называют элементами, главным образом потому, что в иерархии классов они наследуются от FrameworkElement:

Читать »

Реализация секундомера Windows Phone 7

Добавлено Дата: 28 December, 2011 категория: Разработка для Windows Phone 7

Очень полезным приложением в телефоне является секундомер. Также это идеальный пример использования как ToggleButton, так и класса Stopwatch (Секундомер), который описан в пространстве имен System.Diagnostics.

Я намеренно использовал прописные буквы в написании имени проекта StopWatch (Секундомер), чтобы избежать путаницы с .NET-классом Stopwatch. Я решил сделать приложение более интересным и реализовал отображение истекшего времени в трех разных форматах соответственно членам следующего перечисления:

Читать »

Анимации и приоритетность свойств Windows Phone 7

Добавлено Дата: 28 December, 2011 категория: Разработка для Windows Phone 7

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

XAML-файл описывает Slider с диапазоном от 0 до 100, TextBlock, отображающий значение Slider, и четыре кнопки:

Читать »

Простые решения Windows Phone 7

Добавлено Дата: 28 December, 2011 категория: Разработка для Windows Phone 7

XAML не является настоящим языком программирования. Он не включает ничего похожего на выражения if. XAML не может принимать решения.

Но это не означает, что мы не будем пытаться это сделать.

Как можно было заметить, класс Clock использовал обычное свойство Hour класса DateTime, значением которого является показание времени в 24-часовом формате. Что делать, если мы хотим использовать 12-часовой формат и выводить рядом с показаниями времени текст «AM» или «PM» для обозначения первой или второй половины суток.

Читать »

Элементы и свойства Windows Phone 7

Добавлено Дата: 28 December, 2011 категория: Разработка для Windows Phone 7

Ранее в данной книге нами были рассмотрены примеры TextBlock и Image. Эти два элемента, безусловно, являются наиболее важными из поддерживаемых Silverlight элементами. Теперь пришло время исследовать текст и растровые изображения более детально, чем мы и займемся в этой главе. Также познакомимся с другими часто используемыми элементами и некоторыми важными свойствами, которые могут применяться к ним, в том числе и трансформациями. Тем самым мы подготовим почву для работы с элементами Panel, которые составляют основу системы динамической компоновки Silverlight (это тема следующей главы), и всей массой остальных элементов управления (глава 10).

Читать »

Клон Grid с одной ячейкой

Добавлено Дата: 28 December, 2011 категория: Разработка для Windows Phone 7

Простейшей панелью является Grid, который не содержит ни строк, ни столбцов. Такие Grid называют «Grid с одной ячейкой». Мы уже рассматривали использование Grid с одной ячейкой на примере ContentPanel. Как было показано, в Grid могут располагаться несколько дочерних элементов, но они перекрывают друг друга.

Читать »

Перемещение вдоль полилинии Windows Phone 7

Добавлено Дата: 28 December, 2011 категория: Разработка для Windows Phone 7

Код из предыдущего приложения может использоваться для любой прямоугольной траектории, координаты углов которой хранятся в массиве turnPoints. Но он не годится для произвольной коллекции из четырех точек или коллекции, включающей большее количество точек. В компьютерной графике коллекцию точек, описывающую последовательности прямых линий, часто называют полилинией. Было бы неплохо написать некоторый код, который описывал бы перемещение автомобиля по произвольной полилинии.

Читать »

Небольшой обзор SpinPaint

Добавлено Дата: 28 December, 2011 категория: Разработка для Windows Phone 7

Приложение SpinPaint имеет необычную историю появления. Первую его версию я написал однажды утром, будучи слушателем двухдневных курсов по разработке ПО для Microsoft Surface (это такие компьютеры размером с журнальный столик, разработанные специально для общественных мест). Та версия была написана для Windows Presentation Foundation и могла использоваться одновременно несколькими пользователями, сидящими вокруг устройства.

Читать »

Анимация со скоростью видео Windows Phone 7

Добавлено Дата: 27 December, 2011 категория: Разработка для Windows Phone 7

Вызов DispatcherTimer с интервалом в одну секунду имеет смысл в приложении HybridClock, потому что положения стрелок часов должны обновляться не чаще, чем каждую секунду. Но с переходом к плавно перемещающейся секундной стрелке сразу же возникает вопрос, как часто необходимо обновлять стрелки часов. Учитывая то, что секундная стрелка должна перемещаться лишь на несколько пикселов в секунду, вероятно, установить таймер на 250 миллисекунд было бы приемлемым, а на 100 миллисекунд – более чем достаточно.

Читать »

Ориентация в приложении на XNA Windows Phone 7

Добавлено Дата: 26 December, 2011 категория: Разработка для Windows Phone 7

По умолчанию в приложениях на XNA для Windows Phone используется альбомная ориентация, возможно, для обеспечения совместимости с другими экранами, используемыми для игр. Поддерживается альбомная ориентация во всех направлениях, так что при переворачивании устройства как на левый, так и на правый бок, ориентация изображения на экране будет меняться соответственно. Если вы предпочитаете игры с портретным расположением, изменить эту настройку не составляет труда. Добавим в конструктор класса Game1 приложения XnaHelloPhone следующие выражения:

Читать »

Присоединенные свойства Windows Phone 7

Добавлено Дата: 26 December, 2011 категория: Разработка для Windows Phone 7

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

<Canvas>

<Ellipse Style="{StaticResource ellipseStyle}" Canvas.Left="116" Canvas.Top="92" />

Читать »