Quero centralizar meu aplicativo WPF na inicialização na tela principal. Eu sei que tenho que definir myWindow.Left e myWindow.Top, mas onde obtenho os valores?
Eu encontrei System.Windows.Forms.Screen.PrimaryScreen
, o que aparentemente não é WPF. Existe uma alternativa WPF que me dá a resolução da tela ou algo parecido?
c#
wpf
screen-positioning
Marcel B
fonte
fonte
WindowStartupLocation.CenterOwner
de algumas janelas filhoManual
. Ref: msdn.microsoft.com/en-us/library/…xaml
fonte
Você ainda pode usar a classe Screen de um aplicativo WPF. Você só precisa fazer referência ao assembly System.Windows.Forms do seu aplicativo. Depois de fazer isso, (e referenciado System.Drawing para o exemplo abaixo):
... funciona muito bem.
Você já pensou em definir a propriedade WindowStartupLocation da janela principal como CenterScreen?
fonte
E sobre a classe SystemParameters em PresentationFramework? Possui uma propriedade WorkArea que parece ser o que você procura.
Mas, por que a configuração de Window.WindowStartupLocation não funciona? CenterScreen é um dos valores enum. Você precisa ajustar a centralização?
fonte
Você não precisa fazer referência ao
System.Windows.Forms
assembly de seu aplicativo. Em vez disso, você pode usarSystem.Windows.SystemParameters.WorkArea
. Isso é equivalente aoSystem.Windows.Forms.Screen.PrimaryScreen.WorkingArea
!fonte
Não há equivalente WPF.
System.Windows.Forms.Screen
ainda faz parte do .NET framework e pode ser usado a partir do WPF.Vejo esta pergunta para obter mais detalhes, mas você pode usar as chamadas relacionadas às telas usando a
WindowInteropHelper
classe para quebrar seu controle WPF.fonte
para centro da tela, use:
para o centro da janela principal, use:
fonte
Prefiro colocá-lo no código WPF.
No
[WindowName].xaml
arquivo:fonte