5

Tôi đang tham khảo dự án winforms lớn có khả năng chạy ở chế độ "Chạm" để có thể vận hành bằng giao diện màn hình cảm ứng. Kiến trúc ứng dụng đã chứa logic mở rộng để mở rộng phông chữ/hiển thị trên các biểu mẫu và điều khiển chuẩn .Net và các điều khiển tùy chỉnh cũng xử lý việc mở rộng quy mô.Các hộp thoại Windows có phông chữ lớn

Vấn đề là ứng dụng sử dụng OpenFileDialog và SaveFileDialog không sử dụng cùng một logic (về cơ bản là điều chỉnh kích thước của thuộc tính Phông trên điều khiển và biểu mẫu đệ quy). Tôi tin rằng các hộp thoại này về cơ bản là các hộp thoại Windows bản địa và lớp OpenFileDialog thực sự chỉ là các lớp bao bọc để hiển thị một giao diện .Net chuẩn để tương tác với chúng.

Một giải pháp có thể là triển khai các hộp thoại tùy chỉnh cho những điều này, nhưng điều đó có thể sẽ có phần công việc rộng rãi. Những gì chúng tôi thực sự muốn làm là bằng cách nào đó quy mô kích thước phông chữ của hộp thoại đặc biệt này (có lẽ thông qua một số P/Invoke cửa sổ xử lý ma thuật)?

Tôi biết rằng một giải pháp để kích hoạt cảm ứng sẽ là điều chỉnh kích thước phông chữ của Windows nói chung, nhưng ý tưởng đó không thực sự bắt kịp với công ty này, họ sẽ thay đổi quy mô ứng dụng và để phần còn lại của Hệ điều hành bị ảnh hưởng.

Vì vậy, bất kỳ trải nghiệm hoặc ý tưởng nào về cách bạn có thể mở rộng các hộp thoại này thành phông chữ lớn hơn? Hay chúng ta nên cắn viên đạn và tạo hộp thoại tùy chỉnh cho điều này?

+0

[Bài viết này] (http://www.codeproject.com/KB/dialog/OpenFileDialogEx.aspx) có thể giúp bạn. – ahazzah

+0

Bài viết rất hay nhưng tôi không đi theo cách này. Tôi muốn viết lại code hơn là hack lớp kín từ .NET. Phiên bản tiếp theo của khuôn khổ hoặc thay đổi API có thể dễ dàng phá vỡ mã của bạn. Sử dụng các điều khiển của bên thứ ba có thể giúp bạn rất nhiều ở đây (những người dùng trả phí hoặc miễn phí). Tôi sẽ đi đầu tiên tìm kiếm một điều khiển cây, đó là khó khăn hơn để tùy chỉnh và tất cả. –

+0

[This] (http://www.codeproject.com/KB/dialog/CustomizeFileDialog.aspx) bài viết khác có thể giúp bạn quá =) –

Trả lời

1

Tôi biết rằng một giải pháp cho cảm ứng cho phép sẽ được điều chỉnh kích thước phông chữ của Windows nói chung, nhưng ý tưởng đó là không thực sự bắt trên với công ty này, họ thà mở rộng các ứng dụng riêng của mình và để lại phần còn lại của hệ điều hành bị ảnh hưởng.

Các hộp thoại bạn tham chiếu là một phần của "phần còn lại của HĐH" mà chúng muốn để nguyên. Bạn có thể sử dụng các hộp thoại phổ biến, buộc phải tăng tỷ lệ phông chữ trong bảng điều khiển, tức là toàn hệ thống hoặc tự thực hiện lại các hộp thoại đó.

Một cách khác có thể là tạo một màn hình Windows riêng biệt bằng API thích hợp, tăng tỷ lệ phông chữ và thực thi ứng dụng ở đó (ví dụ: để ứng dụng tạo, sử dụng và hủy máy tính đó). Sau đó, ứng dụng và tất cả các hộp thoại phổ biến sẽ được tăng tỷ lệ. Ứng dụng sẽ không bao giờ được nhìn thấy với các ứng dụng khác trên một màn hình, tuy nhiên, và bạn sẽ phải chăm sóc chuyển đổi máy tính để bàn trong ứng dụng (tôi nghĩ). Và bạn sẽ không thấy gì ngoài GUI ứng dụng khi ứng dụng đang hoạt động. Không có nút khởi động, không có thanh tác vụ, không có nuttin. Xem ví dụ http://www.codeproject.com/KB/cs/csdesktopswitching.aspx để biết chi tiết.

+1

Tôi sẽ chấp nhận điều này như là câu trả lời vì đây là bài viết khả thi duy nhất được đăng (mặc dù tôi đã hy vọng một điều gì khác hơn là "tự mình thực hiện lại hộp thoại" :)) –

-1

Giải pháp tốt nhất cho bạn sẽ là tạo biểu mẫu triển khai tiêu đề có nhãn và với botton gần và trong phần còn lại của biểu mẫu đặt những gì bạn cần. Trong trường hợp đó, phông chữ nhãn có thể được tăng lên theo bất kỳ kích thước nào bạn muốn. khi bạn phải bấm cái gì vào hộp thoại này .sohwDialog() trên mẫu

Các vấn đề liên quan