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

Конвертеры со свойствами Windows Phone 7

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

Нет ничего безрассудного в создании конвертера привязки данных, настолько специализированного или причудливого, что он будет иметь очень узкое применение. Например, рассмотрим класс DecimalBitToBrushConverter (Конвертер десятичного разряда в кисть). Этот конветер включает два открытых свойства: ZeroBitBrush (Кисть нулевого двоичного разряда) и OneBitBrush (Кисть единичного двоичного разряда).

Читать »

Векторная графика Windows Phone 7

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

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

Векторная графика – это визуальная реализация аналитической геометрии. Координаты в двухмерной системе координат, представленные в форме (x, y), определяют прямые линии и кривые. В Silverlight эти кривые могут быть частями контура эллипса или кривыми Безье, как в обычной кубической форме, так и в упрощенной квадратичной. Эти линии могут быть обведены с применением определенной кисти и стиля. Последовательности соединенных линий и кривых могут определять замкнутую область, которая может быть закрашена с помощью кисти.

Читать »

Эти замечательные шаблоны данных Windows Phone 7

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

Оставшуюся часть данной главы я хочу посвятить ItemsControl и сосредоточиться исключительно на представлении и навигации, отложив в сторону выбор. Для работы нам понадобится новый проект. Включим в него ссылку на библиотеку ElPasoHighSchool и в XAML-файле добавим объявление пространства имен XML для этой библиотеки, и также создадим экземпляр класса StudentBodyPresenter в коллекции Resources, как в предыдущем приложении. Рассмотрим ItemsControl, который помещен в ScrollViewer, заполняющий весь Grid для содержимого:

Читать »

Следуй за катящимся шаром Windows Phone 7

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

В остальных четырех приложениях данной главы поверхность телефона рассматривается как плоскость, по которой может свободно кататься шар.

Сам шар создается в статическом методе Texture2DExtensions.CreateBall (Создать шар), который описан в библиотеке Petzold.Phone.Xna:

Читать »

Динамические текстуры Windows Phone 7

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

Самый обычный способ получения объекта Texture2D для приложения на XNA – загрузить его как содержимое. В главе 4 мы также видели, как приложение создает Texture2D из объекта Stream с помощью статического метода Texture2D.FromSteam. Этот объект может ссылаться на растровое изображение, загруженное из Интернета, или изображение из библиотеки фотографий пользователя, или фотографию, только что снятую камерой телефона.

Читать »

Кнопки и стили Windows Phone 7

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

Свойство Style описано классом FrameworkElement, поэтому, несомненно, оно наследуется классами Control, ButtonBase и Button. Рассмотрим приложение, описывающее Style для Button в разделе Resources страницы:

Project: ButtonStyles Файл: MainPage.xaml (фрагмент)

Читать »

Анимация присоединенных свойств (или нет) Windows Phone 7

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

Существует несколько разных способов применения анимаций Silverlight для перемещения элемента по экрану. Один из них – использовать в качестве цели анимации объект TranslateTransform, заданный как значение свойства RenderTransform элемента. Но вероятно, разработчики, которым более привычно работать с Canvas, захотят применить анимацию к присоединенным свойствам Canvas.Left и Canvas.Top. Для анимации присоединенных свойств используется специальный синтаксис, но он довольно прост.

Читать »

Многоугольник и заливка

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

Для демонстрации пунктиров я использовал полилинию, которая образует три стороны квадрата:

<Grid Background="LightCyan">

<Polyline Points="100 100, 380 100, 380 380, 100 380" Stroke="Red" StrokeThickness="20" StrokeStartLineCap="Round" StrokeEndLineCap="Round" StrokeLineJoin="Round" StrokeDashArray="0 2" StrokeDashCap="Round" />

Читать »

Элемент Image в Silverlight

Добавлено Дата: 25 January, 2012 категория: Разработка для Windows Phone 7

Аналогичное приложение на Silverlight даже еще проще. Создадим проект SilverlightLocalBitmap. Сначала создадим в проекте папку для хранения растрового изображения. Это не обязательно, но делает проект более аккуратным. Обычно разработчики называют эту папку Images (Рисунки), Media (Мультимедиа) или Assets (Ресурсы) в зависимости от типов файлов, для которых она предназначается. Щелкните

Читать »

Свойство Stretch Windows Phone 7

Добавлено Дата: 25 January, 2012 категория: Разработка для Windows Phone 7

</Grid>

Независимо от заданных координат, прямоугольник растягивается, заполняя контейнер полностью, без сохранения пропорций. Сохранение пропорций обеспечивают значения Uniform и UniformToFill, так же как и для элемента Image.

В векторной графике свойство Stretch для Shape используется не часто, но если в конкретном векторном изображении требуется закрасить область произвольного размера, оно очень пригодится.

Читать »

Режимы прозрачности Windows Phone 7

Добавлено Дата: 25 January, 2012 категория: Разработка для Windows Phone 7

UIElement определяет свойство Opacity (Непрозрачность), которое может принимать значения от 0 до 1, обеспечивая элементу (и его потомкам) разные степени прозрачности. Но несколько более интересным является свойство OpacityMask (Маска прозрачности), которое позволяет «скрыть» часть элемента. Значением OpacityMask является объект типа Brush; чаще всего используются один из двух производных от GradientBrush классов. Цвет кисти игнорируется, для определения прозрачности используется только значение альфа- канала.

Читать »

Мощь и слабость XAML Windows Phone 7

Добавлено Дата: 25 January, 2012 категория: Разработка для Windows Phone 7

Как мы видели, приложение на Silverlight – это, главным образом, смесь кода и XAML. В XAML обычно описывается компоновка визуальных элементов приложения и в коде выполняется обработка событий, включая все события пользовательского ввода и события, формируемые элементами управления в результате обработки событий пользовательского ввода.

Читать »

Анимации, описанные в XAML

Добавлено Дата: 23 January, 2012 категория: Разработка для Windows Phone 7

Бытует мнение, что раскадровки и анимации проще описывать в XAML, чем в коде, поэтому в большинстве случаев анимации Silverlight описываются в XAML. Но тогда возникают некоторые трудности в связи с совместным использованием ресурсов.

Перепишем приложение ClickAndSpin, определяя раскадровки и анимации в XAML. Рассмотрим область содержимого приложения XamlClickAndSpin:

Читать »

Элемент Path Windows Phone 7

Добавлено Дата: 23 January, 2012 категория: Разработка для Windows Phone 7

Хотя классы Line, Polyline и Polygon удобны и просты в использовании, последний потомок Shape, класс Path (Контур), объединяет в себе практически всю их функциональность.

Класс Path самостоятельно определяет всего одно свойство: Data типа Geometry (Геометрический элемент). Геометрические элементы являются очень важной концепцией в векторной графике на Silverlight. В общем случае геометрический элемент – это коллекция прямых линий и кривых, некоторые из которых могут соединяться друг с другом (или нет) и определять замкнутые области (или нет). В некоторых графических средах разработки геометрические элементы называют контурами. В Silverlight Path – это элемент, использующий объект Geometry как значение свойства Data.

Читать »

Наконечники, соединения и пунктир

Добавлено Дата: 22 January, 2012 категория: Разработка для Windows Phone 7

При отрисовке толстых линий можно задавать, как будут выглядеть их концы. Их называют наконечниками линий («наконечники», как у стрел). Предлагаемые значения для наконечников являются членами перечисления PenLineCap: Flat (Плоский) (по умолчанию), Square (Квадратный), Round (Скругленный) и Triangle (Треугольный). Зададим одно из этих значений свойству StrokeStartLineCap для наконечника в начале линии и свойству StrokeEndLineCap для наконечника в конце линии. И вот как будет выглядеть линия длиной 30 пикселов со скругленным и треугольным наконечниками:

Читать »