Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
course_(Windows&Web).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.68 Mб
Скачать

Усовершенствования двухмерной графики.

Теперь визуальное представление каждого элемента может быть радикально изменено посредством эффектов в духе PhotoShop — через построители текстур. Разработчики, которые желают манипулировать индивидуальными пикселями вручную, могут также генерировать и модифицировать изображения с помощью класса WriteableBitmap.

Текст

CaretBrush и SelectionBrush

Теперь у каретки и для выделения можно задать кисти:

<TextBox FontSize="24" CaretBrush="Green" SelectionOpacity="0.1" SelectionBrush="Red">

Hello, Hello, Hello

</TextBox>

И получить результат который изображен на рис. 4.3

Рисунок 4.3. Эффект применения CaretBrush и SelectionBrush.

ClearTypeHint

Очередная заклепка в WPF – свойство RenderOptions.ClearTypeHint. Идея в следующем, если в вашем визуальном дереве на каком то шаге используется, например, Opacity, то все визуальное дерево ниже уровнем будет прорисовывать текст без ClearType. Из-за этого текст будет выглядеть значительно иным (рис 4.4):

Рисунок 4.4. Эффект свойства RenderOptions.ClearTypeHint.

Другим примером может быть, если вы у Grid'а будете использовать свойство Clip. Свойством RenderOptions.ClearTypeHint можно задать Enabled – для того, чтобы текст все таки прорисовался с ClearType (если он рисуется без Opacity). Хороший пример для ознакомления приводится тут: http://blogs.msdn.com/b/llobo/archive/2009/10/28/new-wpf-features-cleartypehint.aspx

TextFormattingMode и TextRenderingMode

Теперь мы можем действительно управлять тем, как будет отрисовываться текст. Для этого нам предоставили два свойства TextOptions.TextFormattingMode и TextOptions.TextRenderingMode. Первому можно установить Ideal – текст будет выглядеть как обычно в WPF, или Display – будет выглядеть как текст GDI. Display советуют применять только с мелким текстом, в остальных случаях оставить как есть. Разница в чтении мелкого текста заметна (рис. 4.5):

Рисунок 4.5. Демонстрация работы свойств TextOptions.TextFormattingMode

Так же новый стек поддерживает явно выбираемые режимы прорисовки текста: aliased, grayscale, ClearType. Новый текстовый стек позволяет оптимизировать текстовую привязку для анимации и статики. Вдобавок, новый текстовый стек поддерживает шрифты с встроенными картами изображений, что позволяет многим восточно-азиатским шрифтам прорисовываться с чёткостью, к которой привыкли пользователи Win32.Новый текстовый стек позволяет оптимизировать текстовую привязку для анимации и статики. Вдобавок, новый текстовый стек поддерживает шрифты с встроенными картами изображений, что позволяет многим восточно-азиатским шрифтам прорисовываться с чёткостью, к которой привыкли пользователи Win32.

XAML

Built in Types

В XAML добавилась возможность использовать стандартные типы .NET в разметке без указания лишних namespace, для чего это стало нужно видно в нижеописанных возможностях. Если раньше для описания в XAML объекта типа string приходилось писать:

<s:String xmlns:s="clr-namespace:System;assembly=mscorlib"> Foo </s:String>

Теперь же

<x:String > Foo </s:String>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]