检测分辨率c#WinForms的变化

Mat*_*ze 24 .net c# winforms

是否有一种简单的方法可以挂钩在更改全局屏幕分辨率时触发的事件?

Fre*_*ool 34

处理以下事件:

Microsoft.Win32.SystemEvents.DisplaySettingsChanged
Run Code Online (Sandbox Code Playgroud)

您可以参考页面了解更多详情.

您可能还想在SystemEvents类上看到msdn文章.


Rad*_*tov 7

有两个事件- SystemEvents.DisplaySettingsChanged并且SystemEvents.DisplayedSettingsChanging,你可以处理.请注意,这两个事件都是静态的,您需要在退出程序之前分离处理程序.

  • "在退出程序之前,您需要分离处理程序":当然不是!一旦进程停止,无论您是否取消订阅都无关紧要...只是订阅该事件的对象将不符合GC的条件并将保留在内存中 (7认同)
  • 文档说:"因为这是一个静态事件,所以在处理应用程序时必须分离事件处理程序,否则会导致内存泄漏." https://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.displaysettingschanged.aspx?f=255&MSPPError=-2147217396 (2认同)