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 文字不會在未完全不透明的背景上正確顯示。 中繼轉譯目標,例如 EffectOpacityMaskVisualBrushDrawingBrushClipOpacity ,可以引入不完全不透明的背景。 WPF 偵測到繪製文字的緩衝區可能有透明背景時,會停用 ClearType。

ClearTypeHint 屬性設定為 Enabled ,以指出子樹適用于 ClearType 文字轉譯的安全。 只有在您可以確定文字轉譯為完全不透明背景時,才執行此動作。 當子樹中的專案導入透明度時,您可以啟用 ClearType;不過,可能會發生轉譯問題。 如果子樹的某個部分引進更多中繼轉譯目標,您必須在該子樹的子系上再次設定 ClearTypeHint

下列清單顯示如何確定要以 ClearType 轉譯的文字正確出現。

  • 請勿在 與要以 ClearType 轉譯的文字之間 ClearTypeHint 導入中繼轉譯目標。

  • 將視覺化樹狀結構中盡可能接近的不透明背景指派給文字。

  • 請注意, ClearTypeHint 重新啟用子樹的 ClearType;不過,它不會強制 ClearType 轉譯。

  • 請注意, ClearTypeHint 不會覆寫您的系統設定或 TextRenderingMode 設定。

注意

ClearTypeHint附加屬性不會影響 TextBox 控制項;不過,它會與控制項搭配使用 TextBlock

注意

在許多控制項上,除非在文字後方設定不透明背景, ClearTypeHint 否則附加屬性不會有任何作用。

若要在程式碼中存取此屬性,請使用 GetClearTypeHintSetClearTypeHint 方法。

適用於