Главная » Silverlight » Изменение размеров с помощью класса viewbox

0

Наиболее существенное ограничение контейнера Canvas состоит в том, что изменять размеры графики для размещения в большем или меньшем окне невозможно. Для неко­торых типов содержимого изменять размеры элементов не нужно (например, размеры кнопок при расширении окна обычно не изменяются), однако во многих случаях это все же необходимо. Например, иногда нужно создать графику, размеры которой авто­матически изменяются таким образом, чтобы заполнить все доступное пространство.

Элемент Viewbox входит в набор Silverlight Toolkit (www.codeplex.com/Silverlight) и применяется для облегчения изменения размеров элементов на панели Canvas, под­держивающей точное позиционирование. Объект Viewbox может растягивать лишь один элемент, представленный в свойстве Child. Правила растягивания устанавлива­ются в свойствах Stretch и StretchDirection.

Рис. 8.13. Штриховые линии

Приведенная выше разметка задает следующую последовательность участков: за­полненный длиной 5×14, пустой длиной 0,2×14, заполненный длиной 3×14, пустой дли­ной 0,2×14 и т.д. На изломе линии каждая следующая последовательность начинается в точке, в которой закончилась предыдущая.

Что будет, если в массиве StrokeDashArray приведено нечетное количество чисел?

StrokeDashArray="3 0.5 2"

В этом случае длины заполненных и пустых участков будут чередоваться. Вывод всегда начинается с заполненного участка, длина которого задана первым числом. Например, приведенная выше разметка задает следующую последовательность участ­ков: заполненный длиной 3×14, пустой длиной 0,5×14, заполненный длиной 2×14, пу­стой длиной 3×14, заполненный длиной 0,5×14 и т.д.

С помощью свойства StrokeDashOffset можно сместить начало последовательно­сти. Свойство StrokeDashOffset содержит индекс, начинающийся с нулевого значения и указывающий на элемент массива StrokeDashArray. Например, если в предыдущей разметке присвоить свойству StrokeDashOffset значение 1, то вывод штриховой линии начнется с пустого участка длиной 0,5×14, а при значении 2 — с заполненного участка длиной 2×14.

С помощью свойства StrokeDashCap (см. рис. 8.13) можно управлять внешним видом концов заполненных участков. Доступны те же значения (Bevel, Square и Triangle), что и для свойств, управляющих концами отрезков (см. выше). Не забывайте, что эти свой­ства приводят к удлинению штриха на половину толщины линии, в результате чего за­полненные участки могут перекрываться. Для решения проблемы достаточно немного удлинить пустые участки.

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

Источник: Мак-Дональд, Мэтью. Silverlight 3 с примерами на С# для профессионалов. : Пер. с англ. —- М. : ООО «И.Д. Вильяме», 2010. — 656 с. : ил. — Парал. тит. англ.

По теме:

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