Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Windows presentation foundation with - MacDonald M.

MacDonald M. Windows presentation foundation with — Вильямс , 2008. — 928 c.
ISBN 978-5-8459-1429-3
Скачать (прямая ссылка): wpfwindowspresente2008.pdf
Предыдущая << 1 .. 187 188 189 190 191 192 < 193 > 194 195 196 197 198 199 .. 473 >> Следующая

С помощью свойства RenderTransformOrigin вы можете поворачивать фигуру вокруг ее центральной точки, используя примерно такой код разметки:
<Rectang1e Width="80" Height="10" Б^оке="Б1ие" Еі11='^є11о»ї"
Canvas.Left="100" Canvas.Top="100" RenderTransformOrigin="0.5,0.5">
<Rectaпg1e.ReпdeгTгaпsfoгm>
<RotateTгaпsfoгm Ang1e="25" />
</Rectang1e.RenderTransform>
</Rectang1e>
Рис. 13.15. Четырехкратный Рис. 13.16. Поворот прямоуголь-
поворот прямоугольника ника вокруг его центра
Book_Pro_WPF-2.mdb 377 19.05.2008 18:10:26
378 Глава 13
Это работает потому, что точка (0.5, 0.5) означает центр фигуры независимо от ее размера. На практике RenderTransformOrigin обычно более удобное свойство, чем CenterX и CenterY, хотя, в зависимости от ваших потребностей, вы можете использовать любой вариант (либо оба сразу).
Совет. При установке свойства RenderTransformOrigin вы можете использовать значения больше 1 или меньше 0, чтобы указать точку, находящуюся за пределами вашей фигуры. Например, вы можете применять эту технику с RotateTransform для поворота фигуры по большой дуге вокруг очень удаленной точки, такой как (5,5).
Трансформация элементов
Свойства RenderTransform и RenderTransformOrigin не ограничиваются фигурами. Фактически, класс Shape наследует их от класса UIElement, а это означает, что они поддерживаются всеми элементами WPF, включая кнопки, текстовые поля, TextBlock, контейнеры компоновки, заполненные содержимым, и т.д. Невероятно, но вы можете поворачивать, искажать и масштабировать любую часть пользовательского интерфейса WPF (хотя в большинстве случаев этого делать и не стоит).
RenderTransform — не единственное свойство, касающееся трансформации, определенное в базовых классах WPF. FrameworkElement также определяет свойство LayoutTransform. Это свойство определенным образом изменяет элемент, но выполняет свою работу перед проходом компоновки. В результате на это требуется немного больше накладных расходов, но это оправдано, когда вы используете контейнер компоновки для обеспечения автоматического размещения групп элементов управления. (Классы фигур также включают свойство LayoutTransform, но вам редко понадобится работать с ним, поскольку обычно вы размещаете фигуры специальным образом, используя контейнер вроде Canvas вместо применения автоматической компоновки.)
Чтобы понять разницу, взгляните на рис. 13.17, на котором изображено два контейнера StackPanel (представленных заштрихованными областями), оба содержат повернутую кнопку и нормальную кнопку. Повернутая кнопка на первой StackPanel использует подход RenderTransform. StackPanel располагает две кнопки так, что первая из них позиционирована нормально, а поворот второй происходит непосредственно перед ее отображением. В результате повернутая кнопка перекрывает ту, что находится под ней. На второй StackPanel повернутая кнопка применяет подход LayoutTransform.
StackPanel получает границы, необходимые для размещения повернутой кнопки, и располагает ее соответствующим образом.
Существует несколько редких элементов, которые не могут быть трансформированы, потому что работа по их отображению не является “родной” для WPF. Примерами могут служить элемент WindowsFormsHost, который позволяет поместить элемент управления Windows Forms в окно WPF (этот трюк будет продемонстрирован в главе 25), а также элемент Frame, когда он используется для отображения HTML-содержимого (в этом случае он полагается на элемент управления WebBrowser на базе COM из Internet Explorer).
До определенной степени элементы WPF оста-Рис. 13.17. Повороты кнопок ются в неведении о том, что они были модифици-
Book_Pro_WPF-2.mdb 378 19.05.2008 18:10:26
Фигуры, трансформации и кисти 379
рованы, когда вы устанавливаете свойства LayoutTransform или RenderTransform. В частности, трансформации не затрагивают свойства ActualHeight и ActualWidth элемента, которые продолжают хранить его нетрансформированные размеры. Это часть того, как WPF обеспечивает продолжение работы потоковой (flow) компоновки и отступов с тем же поведением, даже если вы применяете одну или более трансформаций.
Лучшие кисти
Как вы знаете, кисти заполняют области — будь то фон, передний план или граница элемента, тело фигуры или ее грань. Вы используете кисти на протяжении всей нашей книги, но до сих пор ограничивались самой простой из них — SolidColorBrush. Вам уже известны такие фундаментальные факты о кистях.
• Кисти поддерживают нотификации об изменениях, поскольку они унаследованы от Freezable. В результате этого, если вы изменяете кисть, то любой элемент, использующий ее, автоматически перерисовывает себя.
• Кисти поддерживают частичную прозрачность. Все, что вам нужно сделать — модифицировать свойство Opacity, чтобы проявился фон.
• Класс SystemBrushes предоставляет доступ к кистям, использующим цвета, определенные в системных настройках Windows для текущего компьютера.
Хотя SolidColorBrush, безусловно, удобна, существует несколько других классов кистей, унаследованных от System.Windows.Media.Brush, которые предоставляют в ваше распоряжение несколько экзотических эффектов. Все они перечислены в табл. 13.4.
Предыдущая << 1 .. 187 188 189 190 191 192 < 193 > 194 195 196 197 198 199 .. 473 >> Следующая