Pergunta

Eu quero centrar meu aplicativo WPF na inicialização na tela principal. Eu sei que eu tenho que definir myWindow.Left e myWindow.Top, mas onde posso obter os valores?

Eu encontrei System.Windows.Forms.Screen.PrimaryScreen, o que não é, aparentemente, WPF. Existe uma alternativa WPF que me dá a resolução de tela ou algo assim?

Foi útil?

Solução

Coloque isso no seu construtor da janela

WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;

.NET FrameworkSupported em: 4, 3.5, 3.0

.NET Framework Cliente ProfileSupported em: 4, 3.5 SP1

Outras dicas

xaml

WindowStartupLocation="CenterScreen"

Você ainda pode usar a classe Screen a partir de um aplicativo WPF. Você só precisa referenciar os System.Windows.Forms montagem do seu aplicativo. Uma vez feito isso, (e referenciado System.Drawing para o exemplo abaixo):

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

... funciona muito bem.

Você já considerou definir a sua principal propriedade da janela WindowStartupLocation para CenterScreen?

O que sobre a classe SystemParameters em PresentationFramework? Ele tem uma propriedade WorkArea que parece ser o que você está procurando.

Mas, por que não vai definir o trabalho Window.WindowStartupLocation? CenterScreen é um dos valores enum. Você tem que ajustar a centralização?

Você não precisa fazer referência ao System.Windows.Forms montagem do seu aplicativo. Em vez disso, você pode usar System.Windows.SystemParameters.WorkArea. Isto é equivalente à System.Windows.Forms.Screen.PrimaryScreen.WorkingArea!

Não há WPF equivalente. System.Windows.Forms.Screen ainda é parte do framework .NET e pode ser usado a partir de WPF embora.

Consulte este questão por mais detalhes, mas você pode usar as chamadas relacionadas com telas usando a WindowInteropHelper classe para embrulhar o seu controle WPF.

var window = new MyWindow();

para o centro do uso da tela:

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

para o centro do uso janela pai:

window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top