Как расположить приложение WPF по центру экрана?

StackOverflow https://stackoverflow.com/questions/935599

  •  06-09-2019
  •  | 
  •  

Вопрос

Я хочу центрировать свое приложение WPF при запуске на основном экране.Я знаю, что мне нужно установить MyWindow.Left и MyWindow.Top, но где мне взять значения?

Я нашел System.Windows.Forms.Screen.PrimaryScreen, который, по-видимому, не является WPF.Есть ли альтернатива WPF, которая дает мне разрешение экрана или что-то в этом роде?

Это было полезно?

Решение

Поместите это в свой конструктор window

WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;

.NET Framework поддерживается в:4, 3.5, 3.0

Поддерживаемые профили клиентов .NET Framework в:4, 3.5 SP1

Другие советы

xaml

WindowStartupLocation="CenterScreen"

Вы все еще можете использовать класс Screen из приложения WPF.Вам просто нужно обратиться к Системе.Windows.Формирует сборку из вашего приложения.Как только вы это сделаете (и обратитесь к системе.Рисунок для примера ниже):

Rectangle workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;

..работает просто отлично.

Рассматривали ли вы возможность установки для вашего свойства главного окна WindowStartupLocation значения Centercreen?

Как насчет класса SystemParameters в PresentationFramework?В нем есть Рабочая область недвижимость, которая, кажется, является тем, что вы ищете.

Но почему установка Window.WindowStartupLocation не работает?Centercreen - это одно из значений перечисления.Вам нужно изменить центровку?

Вам не нужно ссылаться на System.Windows.Forms сборка из вашего приложения.Вместо этого вы можете использовать System.Windows.SystemParameters.WorkArea.Это эквивалентно System.Windows.Forms.Screen.PrimaryScreen.WorkingArea!

Эквивалента WPF не существует. System.Windows.Forms.Screen по-прежнему является частью .NET framework и, тем не менее, может использоваться из WPF.

Видишь этот вопрос для получения более подробной информации, но вы можете использовать вызовы, относящиеся к экранам, используя WindowInteropHelper класс для переноса вашего элемента управления WPF.

var window = new MyWindow();

для центра экрана используйте:

window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;

для центра родительского окна используйте:

window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top