Ai đó có thể giải thích tại sao mọi thứ trong WPF bị mờ? Đây có phải là cái gì đó có thể được sửa?Tại sao mọi thứ trong WPF bị mờ?
Trả lời
Lý do cho điều này là hệ thống chống răng cưa trải rộng đường kẻ trên nhiều pixel nếu nó không phù hợp với pixel thiết bị vật lý.
WPF độc lập hoàn toàn. Điều này có nghĩa là bạn chỉ định kích thước của phần tử giao diện người dùng theo inch, không phải bằng pixel. Một đơn vị logic trong WPF là 1/96 inch. Quy mô này được chọn, bởi vì hầu hết các màn hình có độ phân giải 96dpi. Vì vậy, trong hầu hết các trường hợp, 1 đơn vị logic khớp với 1 pixel vật lý. Nhưng nếu độ phân giải màn hình thay đổi, quy tắc này không còn hợp lệ nữa.
Tất cả điều khiển WPF đều cung cấp thuộc tính SnapsToDevicePixels
. Nếu được đặt thành true, điều khiển đảm bảo tất cả các cạnh được vẽ chính xác trên pixel thiết bị vật lý. Nhưng tiếc là tính năng này chỉ khả dụng ở cấp độ kiểm soát.
Quick Fix:
Sử dụng các tùy chọn trên mỗi container từ gốc để kiểm soát mờ của bạn
UseLayoutRounding="True"
RenderOptions.BitmapScalingMode="NearestNeighbor"
SnapsToDevicePixels="True"
RenderOptions.ClearTypeHint="Enabled"
Giải thích:
UseLayoutRounding = true khắc phục sự cố bố cục pixel phụ . Chúng thường xảy ra vì ví dụ: Hiệu ứng thay đổi kích thước điều khiển để được một cái gì đó giữa các điểm ảnh.
RenderOptions.BitmapScalingMode = Gần nhấtHàng xóm sửa lỗi lấy mẫu mờ của bitmap. Bitmap được sử dụng khi các hiệu ứng hoặc các kỹ thuật khác được sử dụng. Khi chúng được áp dụng lại vào thùng chứa hoặc kiểm soát chúng có thể kết thúc bằng pixel giữa và do đó nội suy các pixel của bitmap.
SnapsToDevicePixels = "True" sửa dọc và ngang đa giác, đường dây và hình chữ nhật được trả lại Inbetween pixel
RenderOptions.ClearTypeHint = "Enabled" reenables ClearType trên văn bản. Nó bị vô hiệu hóa rất dễ dàng bởi các hiệu ứng hoặc bất cứ khi nào trình kết xuất không biết chính xác nền của một văn bản.
Bạn nên sử dụng nó trên mọi Vùng chứa vì đôi khi, ví dụ: bởi các mẫu dữ liệu, các tùy chọn này được mặc định lại cho các điều khiển phụ.
Bổ sung: Bạn có thể gặp phải các sự cố trực quan trên màn hình 4K hoặc trong các trường hợp khác. Ví dụ, văn bản có thể bị rách ở giữa hoặc một số điểm ảnh bị thiếu hoàn toàn, thậm chí toàn bộ các đường 1 pixel có thể trở nên vô hình. Bạn cần thêm các kỹ thuật để khắc phục các sự cố này. – ecreif
- 1. Tại sao mọi thứ trong Windows API được gõ?
- 2. tại sao sao băng 0.6.0 quấn mọi thứ vào (hàm() {...})
- 3. Tại sao ListView lặp lại mọi mục thứ 6?
- 4. Tại sao giữ mã phía sau 'sạch' và làm mọi thứ trong XAML?
- 5. Tại sao PostgreSQL mặc định mọi thứ trong trường hợp thấp hơn?
- 6. DXIMageTransform.Microsoft.Matrix bị mờ trong IE9
- 7. ObjectAnimator không bị mờ trong
- 8. Twitter Bootstrap - tại sao phương thức của tôi bị mờ đi làm nền?
- 9. tham số bị che mờ
- 10. Tại sao tạo DLL thay vì biên dịch mọi thứ thành một tệp thực thi lớn?
- 11. tại sao KHÔNG MỌI MỌI mặc định là UTF-8?
- 12. Nhận mọi mục thứ n trong mảng
- 13. Tại sao/như thế nào là tất cả mọi thứ $() dựa trên jQuery?
- 14. Tại sao mẫu OCaml `zero -> zero` dường như phù hợp với mọi thứ?
- 15. WPF MultiBinding Fails. Tại sao?
- 16. Tại sao WPF Canvas không rơi xuống?
- 17. Tại sao "android:" ở khắp mọi nơi?
- 18. Hình ảnh ở giữa bị mờ
- 19. Tại sao KHÔNG BindingList trong WPF
- 20. cách rb_protect mọi thứ trong ruby
- 21. xmlns là gì trong mọi tệp WPF?
- 22. Sprite bị mờ
- 23. Tha thứ/tìm kiếm mờ với LINQ
- 24. Tại sao ảnh PNG đôi khi bị mờ tùy thuộc vào vị trí của nó trong chế độ xem
- 25. SQL WHERE column = mọi thứ
- 26. Mọi thứ nhanh hơn ImageMagick?
- 27. Đặt thứ tự tab trong WPF
- 28. Heroku, Thin và mọi thứ ở giữa
- 29. python tạo mọi thứ từ heap?
- 30. Làm cách nào để xóa mọi thứ trong Redis?
Lưu ý rằng thuộc tính SnapToDevicePixels không có hiệu lực trên văn bản glyphs. Hãy thử điều này trên TextBlock để xem những gì tôi có ý nghĩa. Thật không may, chúng tôi đang mắc kẹt với văn bản mờ cho bây giờ. –
Có nhiều phông chữ mờ hơn ở đây: http://stackoverflow.com/questions/190344/wpf-blurry-fonts-problem-solutions – Spoike