5

我正在諮詢一個大的.Net winforms項目,該項目必須能夠在「觸摸」模式下運行,因此可以使用觸摸屏界面進行操作。應用程序體系結構已包含縮放邏輯,用於放大標準.Net窗體和控件上的字體/顯示,並且自定義控件還可處理縮放。帶有大字體的Windows對話框

問題是,應用程序使用OpenFileDialog和SaveFileDialog,它不使用相同的邏輯進行縮放(這基本上是以遞歸方式調整控件和窗體上Font屬性的大小)。我相信這些對話本質上就是Windows對話框,而OpenFileDialog類實際上只是包裝類,它們公開了一個標準的.Net接口來與它們進行交互。

一個解決方案可能是實現這些事情的自定義對話框,但這可能會有點廣泛的工作。我們真正想要做的是以某種方式縮放這個特定對話框的字體大小(可能通過一些P/Invoke窗口控制魔術)?

我知道觸摸啓用的一個解決方案通常是調整Windows的字體大小,但是這個想法並沒有真正吸引這家公司,他們寧願擴展應用程序本身,而將其餘的操作系統不變。

那麼,關於如何將這些對話框縮放到更大的字體的任何經驗或想法?或者我們應該咬緊牙關併爲此創建自定義對話框?

+0

[This](http://www.codeproject.com/KB/dialog/OpenFileDialogEx.aspx)文章可能會對你有所幫助。 – ahazzah

+0

這篇文章很好,但我不會這樣。我寧願重寫代碼,而不是從黑客密封的.NET類。下一個版本的框架或API更改可能會輕易破壞您的代碼。使用第三方控件可以爲您提供很多幫助(付費或免費)。我會先找一個樹形控件,這很難定製和所有。 –

+0

[This](http://www.codeproject.com/KB/dialog/CustomizeFileDialog。aspx)其他文章可能也會幫助你=) –

回答

1

我知道,觸摸啓用一個解決辦法是調整Windows在一般的 字體大小,但這種想法是不是真的有這家公司趕上 上,他們寧願縮放應用程序本身,離開 操作系統的其餘部分未改動。

您引用的對話框是「其他操作系統」的一部分,他們寧願保持原樣。 您可以使用常用對話框,強制增加控制面板(即系統範圍)中的字體縮放比例,也可以自行重新實現這些對話框。

另一種方法是使用適當的API創建單獨的Windows桌面,增加其字體縮放比例,並在那裏執行應用程序(即讓應用程序創建,使用和銷燬該桌面)。然後,應用程序和所有常見對話框將被放大。 雖然這款應用在其他應用中絕不會出現在屏幕上,但您必須在應用中切換桌面(我認爲)。當應用程序處於活動狀態時,除了應用程序GUI外,您什麼也看不到。沒有開始按鈕,沒有任務欄,沒有內容。有關詳細信息,請參閱http://www.codeproject.com/KB/cs/csdesktopswitching.aspx

+1

我會接受這個答案,因爲這是唯一可行的發佈(儘管我希望除了「自己重新實現對話框:)」之外) –

-1

對於你來說,最好的解決方案是創建一個表單,實現帶有標籤的標題和關閉按鈕,並在表單的其餘部分放置你所需要的。在這種情況下,標籤字體可能會增加到任何你想要的大小。當你在這個對話框中只需調用.sohwDialog()表格

相關問題