Nền tảng kỹ thuật
Có một bài viết chuyên sâu về kết xuất văn bản WPF từ một trong những Trình quản lý chương trình văn bản WPF trên windowsclient.net: Text Clarity trong WPF .
Vấn đề bắt nguồn từ WPF cần một trình kết xuất phông chữ tỷ lệ tuyến tính để có hình ảnh động mượt mà. Mặt khác, ClearType hoàn toàn tự do với phông chữ để đẩy các thân dọc vào pixel tiếp theo.
Sự khác biệt là rõ ràng nếu người ta so sánh mô hình "thác" cổ điển. WinForms ở phía dưới bên trái, WPF ở phía trên bên phải:
Mặc dù tôi cũng không phải là fan hâm mộ của các biểu tượng hiển thị phông chữ của WPF, tôi có thể tưởng tượng ra tiếng kêu nếu hoạt hình sẽ nhảy như họ làm trong thác Winforms.
Chơi với sổ đăng ký
Đối với tôi đặc biệt quan tâm là liên kết đến bài viết " Cài đặt đăng ký ClearType " của MSDN , giải thích các điều chỉnh có thể có của người dùng trong sổ đăng ký:
- Mức ClearType: lượng gợi ý pixel phụ
- Cấp độ gamma
- Cấu trúc pixel: cách các sọc màu trong pixel hiển thị được sắp xếp
- Mức độ tương phản văn bản: điều chỉnh độ rộng của thân glyph để làm cho phông chữ nặng hơn
Chơi xung quanh với các cài đặt này không thực sự cải thiện vấn đề tiềm ẩn, nhưng có thể giúp bằng cách giảm hiệu ứng chảy máu màu cho người dùng nhạy cảm.
Cách tiếp cận khác
Lời khuyên tốt nhất mà bài viết Text Clarity đưa ra là tăng kích thước phông chữ và thay đổi phông chữ. Calibri hoạt động với tôi tốt hơn so với Segoe UI tiêu chuẩn. Do sự phổ biến của nó là phông chữ web, tôi cũng đã thử Verdana, nhưng nó có một bước nhảy khó chịu về trọng lượng giữa 14pt và 15pt, rất dễ thấy khi kích hoạt kích thước phông chữ.
WPF 4.0
WPF 4 sẽ được cải thiện hỗ trợ cho việc ảnh hưởng đến kết xuất phông chữ. Có một bài viết trên Blog Văn bản WPF giải thích về những thay đổi. Nổi bật nhất, hiện có (ít nhất) ba loại kết xuất văn bản khác nhau:
<grumble> Đó phải là sợi dây đủ cho mọi nhà thiết kế. </ grumble>