Один (возможно, грязный) способ состоит в том, чтобы зарегистрировать горячую клавишу для захвата вызова WIN + D, как предлагается в этом ответе: https://stackoverflow.com/a/824395/12167858
Если у вас есть способ перехватить горячую клавишу, вы можете узнатьзапускается ли его триггерное событие до или после собственного ответа WIN + D (показывая рабочий стол).
Я сам еще не проверял это, однако, если оно срабатывает после Родной ответ, вы готовы идти. В противном случае, если такое решение будет приемлемым, вы можете использовать Task.Delay (), чтобы дождаться, пока Windows закончит сворачивать все видимые окна.
/ edit: я забыл критическую часть: как только вы убедились, чтоWindows закончила свою работу, вызовите код ниже (как предложено здесь: https://stackoverflow.com/a/6837421/12167858), чтобы вернуть окно в исходное состояние:
if (myWindow.WindowState == WindowState.Minimized)
myWindow.WindowState = WindowState.Normal;