wpf 文字顯示出來后自動模糊的問題 TextOptions.TextFormattingMode="Display"


從上面gif可以看出文字會自動變模糊,加上TextOptions.TextFormattingMode="Display" 就好了

wpf4 文字 模糊 不清晰 解決方法

 

在窗口或控件上設置字體屬性就可以了,如下:
<UserControl x:Class="..."
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="400" d:DesignWidth="800"
             FontFamily="NSimSun"  FontSize="14" TextOptions.TextFormattingMode="Display">

 

 

 

參考:

 

WPF4對字體渲染做了很大的改善,增加了TextOptions屬性,該屬性可以設置TextFormattingMode,TextRenderingMode,TextHintingMode

1.TextFormattingMode

它提供了兩種設置:

· Ideal  —— WPF4之前的模式

· Display —— 新的模式,可以使字體顯示更清晰

(一般將TextFormattingMode設置為Display,可以提高字體顯示的清晰度)

2.TextRenderingMode

設置渲染模式,可以有以下設置:

Auto – This mode will use ClearType unless system settings have been set to specifically disable ClearType on the machine.

Aliased – No antialiasing will be used to draw text.

Grayscale – Grayscale antialiasing will be used to draw text.

ClearType – ClearType antialising will be used to draw text.

(一般用ClearType渲染出來的字體會比較平滑)

3.TextHintingMode

獲取或設置一個值,該值影響文本元素的呈現行為,這是一種性能優化方式,當您對文本元素的任何文本屬性進行動畫處理時,可以使用此方式。

此屬性的值采用以下兩種可能的值:

Animated 通過使用一個更高效、但視覺精確下降的平滑算法來針對動畫進行優化。(文本仍然是可讀的;精度損失並不嚴重。)

Fixed(默認值)使用的算法針對視覺上精確的字體平滑效果進行了優化,但當將動畫應用於字體元素的屬性時,可能導致性能問題以及抖動,尤其是對於 FontSize 或轉換/定位/投影。

(在需要對字體做一些動態效果,例如將字體縮放時,使用Animated能獲取較高的性能,但同時也影響了其顯示的清晰度)

4.WPF4.0中同時針對東亞字體的渲染進行了優化,現在它支持點陣字體了,而開啟這個新特性十分簡單,只需為FontFamily設置一種點陣字體就可以了

以下是一張推薦設置表

Language

Font

Traditional Chinese

MingLiu

Simplified Chinese

SimSun

Japanese

MS Gothic

Korean

Gulium

Korean

Batang


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM