Мне нужен способ центрировать текущее окно. Так, например, если пользователь нажимает кнопку, я хочу, чтобы окно центрировалось на экране. Я знаю, что вы можете использовать свойство startposition, но я не могу понять, как использовать его, кроме как при первом запуске приложения. Итак, как мне центрировать форму на экране?
129
Ответы:
Используйте метод Form.CenterToScreen () .
источник
Использование окна свойств
Выберите форму → перейдите в окно свойств → выберите «начальную позицию» → выберите любое место, которое хотите.
Программный
Form form1 = new Form(); form1.StartPosition = FormStartPosition.CenterScreen; form1.ShowDialog();
Примечание. Не вызывайте Form.CenterToScreen () напрямую из кода. Прочтите здесь .
источник
Одна строка:
источник
Screen screen = Screen.FromControl(this);
здесь.Screen.FromControl(this)
но сохраняюPrimaryScreen
. (Я разрабатываю приложение с ограничениями по оборудованию) :-)В Windows Forms:
В WPF:
Это все, что вам нужно сделать ...
источник
Если вы хотите центрировать окна во время выполнения, используйте приведенный ниже код, скопируйте его в свое приложение:
И, наконец, вызовите метод выше, чтобы он заработал:
источник
this.Location = Screen.AllScreens[0].WorkingArea.Location;
его до него, другие ответы не работают в таком случае перемещения приложения при использовании нескольких экранов.Центрирование формы во время выполнения
1. Установите следующее свойство формы:
-> StartPosition: CenterScreen
-> WindowState: Normal
Это центрирует форму во время выполнения, но если размер формы больше ожидаемого, выполните второй шаг.
2. Добавьте нестандартный размер после InitializeComponent ();
источник
Центрирует любое окно, на которое вы можете взять ручку
источник
Использовать это:
источник
Используйте свойство Location формы. Установите его в желаемую верхнюю левую точку
желаемый x = (ширина_ рабочего стола - form_witdh) / 2
желаемый y = (desktop_height - from_height) / 2
источник
Вы можете использовать,
Screen.PrimaryScreen.Bounds
чтобы получить размер основного монитора (или проверитьScreen
объект, чтобы получить все мониторы). Используйте их,MyForms.Bounds
чтобы выяснить, где разместить форму.источник
Возможно, это не совсем относится к вопросу. Но может кому-то поможет.
Center Screen не работает для меня. Причина в том, что я динамически добавлял элементы управления в форму. Технически, когда он был центрирован, он был правильным, на основе формы до добавления элементов управления.
Итак, вот мое решение. (Должен работать с обоими сценариями)
Вы заметите, что я использую PreferredSize вместо того, чтобы использовать высоту / ширину. Предпочтительный размер будет содержать значение формы после добавления элементов управления. Где Высота / Ширина не будет.
Надеюсь, это кому-то поможет.
ура
источник
В случае использования нескольких мониторов и если вы предпочитаете центрировать изображение на правильном мониторе / экране, вы можете попробовать следующие строки:
источник