есть ли простой способ подключиться к событию, которое запускается при изменении глобального разрешения экрана?
Обнаружить изменение разрешения С# WinForms
Ответ 1
Обратите внимание на следующее событие:
Microsoft.Win32.SystemEvents.DisplaySettingsChanged
Для более подробной информации вы можете обратиться к этой странице.
Вы также можете увидеть статью msdn в классе SystemEvents.
Ответ 2
Есть два события - SystemEvents.DisplaySettingsChanged
и SystemEvents.DisplayedSettingsChanging
, которые вы можете обрабатывать.
Обратите внимание, что оба события являются статическими, и вам нужно будет отключить обработчики перед выходом из вашей программы.
Ответ 3
Уверен, что вам не нужно отказаться от подписки на статические события (или любые события), если ваша программа (процесс) умирает. ОС позаботится о том, чтобы освободить всю память вашего процесса в ОС. Однако, если вы подписаны на статическое событие или какое-либо событие, указывающее на объект с более длительным сроком службы, чем ваш подписчик на объект, и вы хотите, чтобы этот объект имел право на GC - вам нужно отказаться от подписки (- =) на событие.
И всегда полезно всегда отказаться от подписки на все события. Вы никогда не знаете, когда срок жизни ваших объектов изменяется (кем-то другим) в течение срока службы вашего исходного кода/продукта...