是否有一種簡單的方法來掛鉤全局屏幕分辨率更改時觸發的事件?檢測分辨率的變化c#WinForms
17
A
回答
29
處理以下事件:
Microsoft.Win32.SystemEvents.DisplaySettingsChanged
你可以參考this頁面瞭解詳情。
您可能還想看到SystemEvents類上的msdn article。
6
有兩個事件 - 您可以處理的SystemEvents.DisplaySettingsChanged
和SystemEvents.DisplayedSettingsChanging
。 請注意,這兩個事件都是靜態的,您需要在退出程序之前先分離處理程序。
4
當然,如果程序(進程)正在死亡,則不必取消訂閱靜態事件(或任何事件)。操作系統將負責釋放您的進程的所有內存到操作系統。但是,如果您訂閱了一個靜態事件或任何指向比您的對象訂閱的生命週期更長的對象的事件,並且您希望該對象符合GC的條件 - 您需要取消訂閱( - =)該事件。
總是取消訂閱所有事件總是一個好習慣。你永遠不知道你的對象的生命週期在你的源代碼/產品的生命週期中何時被改變...
「你將需要在離開你的程序之前分離你的處理程序」:當然不是!一旦進程停止,取消訂閱或不取消並不重要......只是訂閱該事件的對象將不符合GC的條件,並將保留在內存中 – 2011-05-11 08:33:08