Я хочу центрировать свое приложение WPF при запуске на основном экране. Я знаю, что мне нужно установить myWindow.Left и myWindow.Top, но где мне взять значения?
Я нашел System.Windows.Forms.Screen.PrimaryScreen
, что, по-видимому, не WPF. Есть ли альтернатива WPF, которая дает мне разрешение экрана или что-то в этом роде?
c#
wpf
screen-positioning
Марсель Б
источник
источник
WindowStartupLocation.CenterOwner
некоторые дочерние окнаManual
. Ссылка: msdn.microsoft.com/en-us/library/…XAML
источник
Вы по-прежнему можете использовать класс Screen из приложения WPF. Вам просто нужно сослаться на сборку System.Windows.Forms из вашего приложения. Как только вы это сделаете (и сослались на System.Drawing в примере ниже):
... отлично работает.
Рассматривали ли вы возможность установки свойства WindowStartupLocation главного окна на CenterScreen?
источник
А как насчет класса SystemParameters в PresentationFramework? У него есть свойство WorkArea, которое, кажется, именно то, что вы ищете.
Но почему не работает установка Window.WindowStartupLocation? CenterScreen - одно из значений перечисления. Вам нужно подправить центровку?
источник
Вам не нужно ссылаться на
System.Windows.Forms
сборку из вашего приложения. Вместо этого вы можете использоватьSystem.Windows.SystemParameters.WorkArea
. Это эквивалентSystem.Windows.Forms.Screen.PrimaryScreen.WorkingArea
!источник
Эквивалента WPF не существует.
System.Windows.Forms.Screen
по-прежнему является частью платформы .NET и может использоваться из WPF.См. Этот вопрос для получения дополнительных сведений, но вы можете использовать вызовы, относящиеся к экранам, с помощью
WindowInteropHelper
класса для обертывания элемента управления WPF.источник
для центра экрана используйте:
для центра родительского окна используйте:
источник
Я предпочитаю помещать это в код WPF.
В
[WindowName].xaml
файле:источник