Поделиться через


RenderOptions.ClearTypeHint Присоединенное свойство

Определение

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

see GetClearTypeHint, and SetClearTypeHint
see GetClearTypeHint, and SetClearTypeHint
see GetClearTypeHint, and SetClearTypeHint

Примеры

В следующем примере показано, как свойство влияет на ClearTypeHint различные ветви визуального дерева. В первом элементе управления блоком текста текст отрисовывается с помощью ClearType, так как блок текста наследует параметр из главного окна. Во втором текстовом блоке ClearType не используется, так как задано свойство родительского OpacityMask элемента. В третьем текстовом блоке используется , ClearTypeHint но могут возникнуть проблемы с отрисовкой.

<Window x:Class="ClearTypeHintDemo.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300"
        AllowsTransparency="True" 
        WindowStyle="None" 
        RenderOptions.ClearTypeHint="Enabled" 
        Background="White">
    <Window.Resources>
        <LinearGradientBrush x:Key="opacityBrush" >
            <GradientStop Color="#FF000000" Offset="0.0" />
            <GradientStop Color="#00000000" Offset="1.0" />
        </LinearGradientBrush>
    </Window.Resources>

    <StackPanel>
        <TextBlock Text="This text is rendered with ClearType." />
        <StackPanel OpacityMask="{StaticResource opacityBrush}" >
            <TextBlock Text="This text is not rendered with ClearType." />
            <TextBlock RenderOptions.ClearTypeHint="Enabled" 
                       Text="This text is rendered with ClearType but may alpha-blend incorrectly." />
        </StackPanel>
    </StackPanel>
</Window>  

Комментарии

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

Текст ClearType неправильно отображается на фоне, который не является полностью непрозрачным. Промежуточные целевые объекты отрисовки, такие как Effect, OpacityMaskVisualBrush, , ClipDrawingBrush, и Opacity, могут содержать фоны, которые не являются полностью непрозрачными. WPF отключает ClearType, когда обнаруживает, что буфер, в который нарисован текст, может иметь прозрачный фон.

Присвойте свойству ClearTypeHint значение , Enabled чтобы указать, что поддеревь безопасно для отрисовки текста ClearType. Это можно сделать только в том случае, если вы можете быть уверены, что текст отображается на полностью непрозрачном фоне. Если элемент в поддереве предоставляет прозрачность, можно включить ClearType; однако могут возникнуть проблемы с отрисовкой. Если часть поддеревья содержит более промежуточные целевые объекты отрисовки, необходимо снова задать для ClearTypeHint дочерних элементов этого поддеревого.

В следующем списке показано, как убедиться, что текст, отображаемый с помощью ClearType, отображается правильно.

  • Не вводите промежуточные целевые объекты отрисовки между ClearTypeHint и текстом для отрисовки с помощью ClearType.

  • Назначьте тексту непрозрачный фон, который находится как можно ближе к тексту в визуальном дереве.

  • Имейте в виду, что ClearTypeHint повторно включает ClearType для поддеревого, но не принудительное отображение ClearType.

  • Имейте в виду, что ClearTypeHint не переопределяет параметры системы или TextRenderingMode параметры.

Примечание

Присоединенное ClearTypeHint свойство не влияет на TextBox элемент управления, однако оно работает с элементом TextBlock управления .

Примечание

На многих элементах управления присоединенное ClearTypeHint свойство не действует, если не задать непрозрачный фон за текстом.

Для доступа к этому свойству в коде используйте методы GetClearTypeHint и SetClearTypeHint .

Применяется к