Я нашел ответ на этот вопрос в здесь .
это решение прекрасно работает, когда вы вызываете метод только один раз (не вызывайте его из активированного окна события). Я создаю гаджет и хочу, чтобы окно всегда было сзади. если пользователь нажимает на гаджет, я не хочу, чтобы он шел впереди, что является поведением окон по умолчанию. поэтому я решил создать это событие:
private void Window_Activated(object sender, EventArgs e)
{
SendWpfWindowBack(this);
}
поэтому каждый раз, когда окно активируется, оно вызывает метод, основанный на первой указанной мной ссылке. проблема в том, что системный трей отправляется обратно. позвольте мне показать вам, что я имею в виду.
это мой гаджет на визуальной студии.

когда я запускаю его, он отправляется обратно: (я открываю блокнот и внешний вид, чтобы проиллюстрировать свою точку зрения)

теперь, когда я нажимаю на него, срабатывает событие window_Activation, и оно отправляется обратно:

Но обратите внимание, как системный трей (окно меню запуска Windows) отправляется обратно !!!!
это все еще за всем, кроме самого важного окна, которое является меню запуска Windows. Как я могу решить это. почему это происходит перед системным треем!?