2010-07-24 250 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文章解释了如何使用这个功能