Как заставить окно WPF быть сверху всех других окон моего приложения (не в масштабе всей системы)?

Это ограничения в песочнице SES:

Вы можете отправлять почту только на симулятор почтового ящика Amazon SES и проверенные адреса электронной почты и домены. Вы можете отправлять почту только с проверенных адресов электронной почты и доменов. Вы можете отправить не более 200 сообщений за 24-часовой период. Amazon SES может принимать максимум одно сообщение со своей учетной записи в секунду.

Вам нужно выйти из песочницы, чтобы отправить электронную почту на неподтвержденный адрес электронной почты, используя AWS SES.

60
задан viky 31 March 2010 в 14:44
поделиться

6 ответов

Это - то, что помогло мне:

Window selector = new Window ();
selector.Show();
selector.Activate();
selector.Topmost = true;
0
ответ дан 24 November 2019 в 17:49
поделиться

Есть несколько потоков, есть даже «самый верхний» тег. Выполните поиск по нему или перейдите непосредственно к этому сообщению, которое выглядит хорошо:

Как оставить окно поверх всех других окон только в моем приложении?

2
ответ дан 24 November 2019 в 17:49
поделиться

Вы можете добавить это в свои теги Windows

WindowStartupLocation="CenterScreen"

Затем вы также можете отобразить это, если хотите, чтобы ваши пользователи подтвердили это, чтобы продолжить

YourWindow.ShowDialog();

Сначала попробуйте это без параметров TopMost и посмотрите результаты.

0
ответ дан 24 November 2019 в 17:49
поделиться

Вместо этого вы можете использовать Popup, который всегда будет TopMost, украсить его так же, как Window, и полностью присоединить его к вашему приложению, обработать событие LocationChanged вашего основного окна и установить для свойства IsOpen Popup значение false.

Редактировать:

Надеюсь, вы хотите что-то вроде этого:

    Window1 window;

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        window = new Window1();
        window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
        window.Topmost = true;
        this.LocationChanged+=OnLocationchanged;
        window.Show();
    }

    private void OnLocationchanged(object sender, EventArgs e)
    {
          if(window!=null)
              window.Close();
    }

Надеюсь, это поможет !!!

15
ответ дан 24 November 2019 в 17:49
поделиться

Я ОП. После некоторого исследования и тестирования ответ таков:

Нет, точно сделать это невозможно.

1
ответ дан 24 November 2019 в 17:49
поделиться

Вот способ сделать это: сделать так, чтобы ваше «самое верхнее» окно было подписано на события GotFocus и LostFocus других ваших окон и использовало следующее в качестве обработчиков событий:

class TopMostWindow
{
    void OtherWindow_LostFocus(object sender, EventArgs e)
    {
        this.Topmost = false;
    }

    void OtherWindow_GotFocus(object sender, EventArgs e)
    {
        this.Topmost = true;
    }
}
1
ответ дан 24 November 2019 в 17:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: