Главная » Разработка для Windows Phone 7 » Элементы и свойства Windows Phone 7

0

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

Основные фигуры

Пространство имен System.Windows.Shapes включает элементы для отображения векторной графики, т.е. использующие прямые линии и кривые для отрисовки или определения закрашенных областей. Более детальное рассмотрение вопросов векторной графики нас ожидает в главе 13, а сейчас остановимся лишь на двух классах этого пространства имен – Ellipse (Эллипс) и Rectangle (Прямоугольник) – которые немного отличаются от всех остальных тем, что могут использоваться без задания координат.

Вернемся к приложению XamlExperiment, с которым мы работали в главе 7, и добавим элемент Ellipse в сетку для содержимого:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <Ellipse Fill="Blue" Stroke="Red" StrokeThickness="50" />

</Grid>

На экране мы увидим синий эллипс с красной окантовкой, занимающий всю область Grid:

Теперь присвоим свойствам HorizontalAlignment и VerticalAlignment значение Center. Эллипс исчез. Что произошло?

У данного эллипса нет подразумеваемого минимального размера. Если ничто ему не мешает, он занимает весь объем контейнера, но если его размер начинают ограничивать, он становится предельно малым, т.е. сжимается в точку. Это тот случай, когда желательно, а зачастую просто необходимо, явно задавать значения свойств Width и Height элемента.

Понятия обводка (stroke) и заливка {fill) очень распространены в векторной графике. В основе векторной графики лежит определение прямых линий и кривых с помощью координат. Прямые и кривые линии – это математические сущности, которые становятся видимыми только будучи обведенными с использованием определенного цвета и толщины. Линии и кривые также могут определять замкнутые области. Эти области закрашиваются с применением заливки. Оба свойства класса Ellipse, отвечающие за эту функциональность – Fill и Stroke – типа Brush, поэтому к ним могут применяться градиентные кисти.

Чтобы получить круг, свойствам Width и Height класса Ellipse задают одинаковые значения. Свойство Fill можно определить как кисть RadialGradientBrush, которая начинается с белого в центре круга и переходит к градиентному цвету на периметре. Как правило, центром градиента является точка с координатами (0.5, 0.5) относительно круга, но можно ввести смещение:

<Grid x:Name=MContentPanelM Grid.Row="1M Margin=,,12,0,12,0,,>

<Ellipse Width=M300"

Height=,,300,,> <Ellipse.Fill>

<RadialGradientBrush Center="0.4 0.4"

GradientOrigin="0.4 0.4"> <GradientStop Offset="0" Color="White" /> <GradientStop Offset="1M Color="Red" /> </RadialGradientBrush> </Ellipse.Fill> </Ellipse> </Grid>

Кроме всех тех же свойств, что и у класса Ellipse, класс Rectangle определяет свойства RadiusX и RadiusY, обеспечивающие скругление углов.

Источник: Чарльз Петзольд, Программируем Windows Phone 7, Microsoft Press, © 2011.

По теме:

  • Комментарии