Câu trả lời hay của Spencer và Martin là khi để căn chỉnh pixel của bạn.
Đối với các cách: Tôi cũng sẽ chỉ ra rằng một trong WPF 4.0 nên thử sử dụng các tài sản UseLayoutRounding
thay vì SnapsToDevicePixels
.
UseLayoutRounding
làm những gì bạn đang làm tương thích với Silverlight (SnapsToDevicePixels
không có sẵn trong Silverlight) ... và Microsoft cũng đang khuyến khích việc sử dụng các UseLayoutRounding
qua SnapsToDevicePixels
trong documentation của nó.
Sự khác nhau giữa hai loại là gì? Vâng, một sự khác biệt lớn là UseLayoutRounding
xảy ra trong giai đoạn bố trí trong khi SnapsToDevicePixels
xảy ra trong giai đoạn hiển thị. Điều này làm cho tôi suy đoán rằng UseLayoutRounding
có lẽ là một cách hiệu quả hơn để đi (tôi đã không xác nhận điều này, mặc dù).
Tất cả những gì được nói, vẫn sẽ có lý do để sử dụng SnapsToDevicePixels
. Trong thực tế, tài liệu MSDN chỉ đến một. Tôi sẽ thêm một số khác: chỉ với SnapsToDevicePixels
bạn có thể sử dụng các nguyên tắc để kiểm soát chính xác.
Dưới đây là một số tài nguyên về vấn đề này (tức làđiểm ảnh chụp và rõ ràng với hình ảnh, văn bản, và hình ảnh):
Heh. Tôi biết câu trả lời của tôi nhiều hơn một chút so với những gì bạn yêu cầu ... nhưng khái niệm này (tức là độ phân giải độc lập và các vấn đề mà nó mang lại và cách vượt qua chúng) thường có thể là một điểm của frustration khi làm việc với WPF. Ít nhất, tôi muốn chỉ cho bạn thuộc tính WPF 4.0 mới, UseLayoutRounding
.
CẬP NHẬT
tôi chỉ phải thêm kể từ khi tôi đã thấy điều này hơn và hơn ... đôi khi SnapsToDevicePixels
công trình khi UseLayoutRounding
không. Tôi muốn tôi có thể đặt một ngón tay vào lý do tại sao đây là trường hợp, nhưng chắc chắn thử UseLayoutRounding đầu tiên và nếu điều đó không hoạt động, đừng ngần ngại thử SnapsToDevicePixels
.
Dòng đó rất sắc nét nên nó có thể cắt bạn!
Tôi thích nghĩ rằng các dòng sạch, sắc nét làm cho ứng dụng của bạn cảm thấy chuyên nghiệp và được cắt tỉa cẩn thận. Vì vậy, lời khuyên của tôi là sử dụng nó bất cứ nơi nào nó hỗ trợ mục tiêu đó. – cplotts