Идущий полный экран на дополнительном мониторе

VSTHRD200 может не подходить, если ваши методы контроллера асинхронные, но вы не хотите, чтобы асинхронность использовалась в качестве суффикса к этим методам, потому что это могло бы повлиять на публичные URL-адреса. VSTHRD012 также может не применяться, поскольку у вас, вероятно, нет JoinableTaskFactory в среде ASP.NET.

Несколько других могут не применяться ( VSTHRD001 и VSTHRD003 ), но они, скорее всего, не будут производить диагностику в этом контексте, так что это не такая уж большая проблема. [115 ]

27
задан avitenberg 4 February 2016 в 19:00
поделиться

3 ответа

См. эту статью о проекте кода.

Код там будет работать, но по умолчанию будет вашим основным монитором , Чтобы изменить это, вам нужно заменить вызовы GetSystemMetrics на вызовы GetMonitorInfo . Используя GetMonitorInfo, вы можете получить соответствующий RECT для передачи в SetWindowPos.

GetMonitorInfo позволяет получить RECT для любого монитора.

Существует статья MSDN о приложениях положения в настройках нескольких мониторов это может помочь объяснить вещи немного лучше.

7
ответ дан Reed Copsey 28 November 2019 в 04:43
поделиться
private void Form1_Load(object sender, EventArgs e)
{
   this.FormBorderStyle = FormBorderStyle.None;
   this.Bounds = GetSecondaryScreen().Bounds;
}

private Screen GetSecondaryScreen()
{
   foreach (Screen screen in Screen.AllScreens)
   {
      if (screen != Screen.PrimaryScreen)
         return screen;
   }
   return Screen.PrimaryScreen;
}
5
ответ дан 28 November 2019 в 04:43
поделиться

Из вашего вопроса непонятно, ищете ли вы способ переместить окно на дополнительный монитор, а затем перейти в полноэкранный режим, или вы просто смотрите для поддержки полноэкранного режима на любом мониторе, на котором находится окно (который может быть основным или дополнительным).

Если позже, для окна WPF, хотя это не совсем то же самое, что и полноэкранный режим, вы можете удалить границы, когда оно развернуто, и восстановить границу, когда оно не развернуто. Нет необходимости проверять, для какого монитора и т. Д. Отображение заголовка / строки заголовка контролируется состоянием границы.

    protected override void OnStateChanged(EventArgs e)
    {
        if (WindowState == WindowState.Maximized)
        {
            if (WindowStyle.None != WindowStyle)
                WindowStyle = WindowStyle.None;
        }
        else if (WindowStyle != WindowStyle.SingleBorderWindow)
            WindowStyle = WindowStyle.SingleBorderWindow;

        base.OnStateChanged(e);
    }

Благодарим Павла за его ответ на основе форм в текущем вопросе и Ниру за его ответ в этот вопрос .

0
ответ дан 28 November 2019 в 04:43
поделиться
Другие вопросы по тегам:

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