2010-07-24 196 views
0

我有一個C#WPF應用程序,我希望它在啓動時更改屏幕分辨率,如果它不是應該使用的屏幕分辨率(如遊戲)。更改屏幕分辨率

我知道如何檢索屏幕分辨率,但我不知道如何將其設置爲我想要的。

注意:我不是使用ASP或WEB,只是一個桌面應用程序

+0

只是一個友好的建議:請記住,大多數用戶使用液晶屏幕,這在其原始分辨率下效果最佳。我認爲桌面程序會改變我的決議,極其惱人,並立即拋出。 – driis 2010-07-24 11:16:13

+0

@driis:我在最佳狀態下工作的應用程序以特定分辨率顯示,因此我正在考慮將分辨率更改爲我需要的分辨率,然後在focusLost()或應用程序關閉時將其更改回來。 – sikas 2010-07-24 11:21:27

+1

是的,driis是對的。液晶顯示器在某些分辨率下不起作用,因此您的應用程序將無法支持您的分辨率。 此外,如果您的應用程序崩潰,這將使用戶將分辨率設置爲原來的,這也很煩人。 所以我認爲這樣做不是個好主意。 – abhishek 2010-07-24 11:22:05

回答

1

爲什麼你需要這個。

我認爲你不應該這樣做,而是你可以在ViewBox中構建應用程序,並讓你創建解決方案獨立UI。

請檢查我的文章: http://www.dotnetfunda.com/articles/article827-resolution-independent-ui-.aspx

+0

可以滾動條替換視圖框? – sikas 2010-07-24 11:35:34

+0

嘿,如果你想要你的應用程序有滾動條,只需創建你的應用程序的方式,你放置在框中的每個ScrollViewer將有其最小的高度和寬度。 是的,我一直在廣泛使用ViewBox,它對我們非常有用。 – abhishek 2010-07-26 20:54:02

2

這個API功能可讓您更改顯示設置:

 [DllImport("user32.dll")] 
     static extern int ChangeDisplaySettings(
     ref DEVMODE devMode, int flags); 

This文章解釋瞭如何使用這個功能