Инструменты Pen и Pencil

95

Инструментом Pencil можно рисовать от руки штрихованные рисунки, как карандашом, а инструментом Pen - дуги и соединяемые точками прямые и кривые линии, как пером. Итак, найдите эти инструменты на панели Tools (показано на рисунке) и выберите инструмент Pencil. С другой стороны, инструмент Pencil можно быстро выбрать, нажав оперативную клавишу <Y>.

Инструменты Pen и Pencil в панели Tools

Инструментом Pencil можно рисовать произвольные геометрические формы на монтажном столе, удерживая нажатой левую кнопку мыши и перемещая курсор данного инструмента. Выполняя эту операцию, вы непременно заметите, что в том месте, где помещается курсор инструмента Pencil, визуализируется отдельный элемент изображения (так называемый пиксель). С помощью инструмента Pencil можно определить произвольную разомкнутую геометрическую форму или же соединить начальную и конечную точки для создания замкнутой многоугольной формы.

Завершив рисование нескольких геометрических форм по собственному усмотрению, активизируйте инструмент Direct Selection, нажав оперативную клавишу <A>. Напомним, что прямое выделение формы инструментом Direct Selection дает возможность видоизменять отдельные участки, из которых состоит данная форма, по точкам контура. С другой стороны, обычное выделение инструментом Selection, который активизируется с помощью оперативной клавиши <V>, дает возможность выделить весь графический элемент для изменения его положения, размеров или иного вида преобразования.

Если работать с инструментом Pencil относительно просто, то работать с инструментом Pen, как ни странно, немного труднее. Итак, выберите инструмент Pen, нажав оперативную клавишу <Р>. Главное отличие инструмента Pen от родственного ему инструмента Pencil заключается в том, что при каждом перемещении мыши данные отдельных пикселей не регистрируются инструментом Pen. Вместо этого инструментом Pen создается ряд соединяемых отрезков после каждого щелчка кнопкой мыши.

В качестве упражнения активизируйте инструмент Pen, если вы этого еще не сделали, перейдите к пустому участку монтажного стола и щелкните пять или шесть раз левой кнопкой мыши. Создав подобным образом несколько отрезков линии, можете затем видоизменить их контур разными способами, используя инструмент Pen. Так, если вы нажмете клавишу <Alt>, пользуясь инструментом Pen, то можете выделить (и захватить) уже существующую активную точку, чтобы преобразовать отрезок линии в отрезок дуги при перемещении курсора данного инструмента, как показано на рисунке:

Изменение отрезка линии в дугу с помощью инструмента Pencil

Следует также иметь в виду, что если вы выберете инструмент Pen и поместите его курсор на уже существующей активной точке, курсор изменит свой вид на знак "минус". Если вы далее щелкнете на этой точке, она будет удалена из контура.

Если же вы хотите добавить к геометрической форме дополнительную активную точку, щелкните на нужном месте текущего отрезка линии.

Инструмент Pen реагирует на целый ряд операций, инициируемых нажатием клавиш и допускающих дальнейшее видоизменение контура геометрической формы. Подробнее об этом можно узнать, обратившись за справкой к разделу "Pen tool, modifiers" по предметному указателю руководства пользователя Expression Blend:

Перечень операций инструмента Pen

При создании новых геометрических форм инструментами Pen и Pencil в Expression Blend фиксируются операции, инициируемые перемещением курсора, нажатием кнопок мыши и клавиш для создания нового объекта Path. А на платформах WPF и Silverlight предоставляются классы, представляющие наиболее распространенные геометрические формы, причем все эти классы находятся в пространстве имен Windows.Shapes. В классе Path определяется свойство Data, где в конечном итоге сохраняется коллекция различных объектов геометрической формы, определяющих размеры и форму отдельного графического элемента. Для подобных целей на платформах WPF и Silverlight предоставляются такие классы, как RectangleGeometry, EllipseGeomerry, PathGeometry.

Но если вы посмотрите исходную разметку XAML объектов типа Path, автоматически создаваемых в среде Expression Blend, то ожидаемых объектов геометрической формы вы в ней не обнаружите. Вместо них вы увидите длинное строковое значение, присвоенное свойству Data и состоящее из целого ряда чисел и буквенных знаков вроде:

<Grid x:Name="LayoutRoot">
		<Path Data="M109,121 C92.705673,107.63865 81.862961,108.2284 100,78 109.78304,61.694928
		            110.20453,67 137,67 147.96769,67 153.49788,64.748939 164,70 170.77792,73.388962 
					179.34021,75.55302 185,80 190.17186,84.063601 181.66866,107 160,107 183.16041,111.63208 
					205.96348,86.445218 225,115 237.61587,133.9238 231.50883,146 175,146 182.24882,146 
					225.88424,177.11534xd;xa;203.49965,199.49993 191.85086,211.14872 162.40754,212.27169 141,198 125.94662,187.96441 
					103.69919,203.23306 85,197 83.603724,196.53457 79.509975,192.01995 79,191 77.493305,187.98661 76.784065,180.40531 
					84,178 90.212813,175.92906 99.070509,175.96475 105,173 94.966637,169.65555 84.036609,161.32563 75,155 66.4582,149.02074 
					62.423752,146.25416 67,131 69.617696,122.27435xd;xa;81.130995,128.4786 92,135 105.0988,142.85928 99.8128,142.0192 109,121 z" 
					Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="143.295" Margin="65.091,66.176,0,0" Stretch="Fill" Stroke="Black" 
					VerticalAlignment="Top" Width="166.411"/>
		<Path Data="M326,64 L364.5,92.5 C364.5,92.5 369.5,102.5 366.5,109.5 363.5,116.5 305.50021,45.499409 
		            343.49983,128.5 381.49945,211.50059 360.16633,135.16667 389.49937,129.5 389.49937,129.5 
					399.49926,104.5 402.49923,101.5" 
					Fill="#FFF4F4F5" Height="103.957" Margin="0,64,228.5,0" Stretch="Fill" 
					Stroke="Black" VerticalAlignment="Top" HorizontalAlignment="Right" Width="77.5"/>
	</Grid>

Это длинное строковое значение представляет собой компактную форму описания объектов геометрической формы, используемых для визуализации объекта типа Path, на так называемом мини-языке описания контуров. К счастью, вам не придется обрабатывать эти строковые данные вручную. Но в то же время вам не помешает знать, что в столь сжатой строковой форме представлен целый ряд инструкций по выводу результатов визуализации объекта типа Path.

Когда вы экспортируете специальные графические данные средствами Expression Design, язык моделирования контуров в XAML не применяется, а вместо него используется более крупная объектная модель. Но, как правило, именно это и требуется, поскольку объектами геометрической формы можно легко манипулировать в коде.

Пройди тесты
Лучший чат для C# программистов