Vì vậy, tôi đã đọc các nguyên tắc về giao diện người dùng Windows Vista có liên quan đến một câu hỏi khác và họ đã đề cập rằng bạn có thể tồn tại một chuyển đổi thành 120 DPI. Vâng, tôi khởi động máy ảo tiện dụng của mình với ứng dụng được cài đặt và chúng tôi sẽ nhận được gì ... AAAAGH !!! MASSIVE UI FAIL!Giao diện người dùng độc lập cỡ chữ: mọi thứ đã bị hỏng khi tôi chuyển sang 120 DPI?
Mọi thứ đều lộn xộn: một số vùng chứa không đủ lớn cho văn bản của họ; một số điều khiển đã được định vị "bên cạnh nhau" bây giờ tất cả được chia nhỏ với nhau/trải rộng; một số nút không đủ cao; các cột ListView
của tôi không đủ rộng ... eeek.
Có vẻ như cách tiếp cận hoàn toàn khác là theo thứ tự. Trước đây của tôi về cơ bản đã được sử dụng thiết kế Windows Forms VS2008 để tạo ra, tôi đoán, một bố trí dựa trên pixel. Tôi có thể thấy rằng nếu tôi đã gắn bó với Windows Forms, FlowLayoutPanel
s sẽ hữu ích, mặc dù tôi đã tìm thấy chúng thay vì không linh hoạt trong quá khứ. Họ cũng không giải quyết được vấn đề nơi các thùng chứa (ví dụ: bản thân biểu mẫu) không đủ lớn; có lẽ có một cách để làm điều đó? Có thể là tài sản AutoSize
?
Đây cũng có thể là dấu hiệu cho thấy đã đến lúc chuyển tàu tới WPF; Tôi ấn tượng rằng nó được thiết kế đặc biệt cho loại điều này.
Vấn đề cơ bản dường như đi xuống này:
- Nếu tôi được gắn bó với Windows Forms, tất cả các thủ đoạn để đạt được một bố cục font-size độc lập có thể tồn tại người dùng thiết là những gì mình phông chữ lớn, hoặc thiết lập màn hình hiển thị đến 120 DPI?
- WPF có lợi thế đáng kể ở đây không và nếu có, bạn có thể cố gắng thuyết phục tôi rằng nó đáng để chuyển đổi không?
- Có bất kỳ "phương pháp hay nhất" chung nào cho bố cục độc lập với kích thước phông chữ, trong ngăn xếp .NET hay nói chung không?
Tôi đã luôn sử dụng Anchor, Dock, AutoSize và TableLayoutPanels để đạt được các giao diện người dùng có thể dịch và dẫn đến các biểu mẫu có thể thay đổi kích thước. Tuy nhiên, trong cài đặt DPI cao với hộp kiểm "XPI scale scaler" XP bị tắt, tôi thấy mọi ứng dụng của tôi đều có phông chữ mờ. Bất kỳ lời khuyên về sửa chữa đó? –
@romkyns: Trừ khi ứng dụng của bạn nêu rõ rằng đó là "nhận thức dpi cao", ứng dụng của bạn có cùng sửa lỗi kludge mà tất cả các ứng dụng lỗi khác nhận được. Khi bạn yêu cầu dpi hiện tại ứng dụng của bạn được nói dối (nói với nó là 96), và card đồ họa sẽ mở rộng biểu mẫu của bạn cho bạn - làm cho nó mờ đi. Microsoft đã từ bỏ việc cố gắng làm cho các nhà phát triển thực hiện những gì họ phải làm - đó là lý do tại sao mọi người phải chọn ** out of scaling. Google: tệp kê khai 'dpiAware'. –