如何使用c#windows应用程序设置Windows屏幕分辨率

时间:2010-04-28 08:00:27

标签: c#

我在c#winforms中完成了一个项目。我想将屏幕的分辨率设置为1680 x 1050, 当应用程序在任何PC上运行时。怎么做?

4 个答案:

答案 0 :(得分:5)

正如其他人已经提到的那样,你不应该自动更改分辨率,导致用户将其设置为他喜欢的特定分辨率(或者他的硬件效果最佳)。

因此,您应该更改应用程序,而不是更改分辨率。使用TableLayoutPanelFlowLayoutPanel和/或SplitContainer。设置控件的AnchorDock属性,并考虑在应用程序中设置每个控件的MinimumSizeMaximumSize

这样,您的应用程序可以在不同分辨率之间自动缩放,用户可以选择他喜欢的分辨率。

最后但同样重要的是,您的应用程序不仅应考虑关注用户选择的分辨率,还应注意所选的dpi设置。您应该关注哪一个在Windows UX Guide(网站592)中进行了描述。

答案 1 :(得分:4)

我建议你不要做这些事情。屏幕分辨率由用户设置,这是您不应自动更改的。它与改变配色方案,声音方案或任何其他基于用户的偏好一样糟糕,如果用户不了解它,更不用说想让你的程序做。至少显示一个对话框,让用户选择该做什么 话虽如此,here's an example on how to do this

答案 2 :(得分:3)

答案 3 :(得分:3)

嗯,他并不是说他的申请会改变其他系统的决议。您不应该更改其他人的计算机上的屏幕分辨率;但是,用户可能需要通过单独的实用程序(出于不同的原因)更改自己的分辨率。这就是我的情况,因此我必须在C#中编写一个简单的实用程序来使用InteropServices来实现它。调用ChangeDisplaySettings。这是宣言:

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