none
Utilizando expander e manter janela no centro RRS feed

  • Pergunta

  • Olá a todos.!

    Tenho uma janela que contém um EXPANDER para expandir a visualização de um grid de dados, mas ao expandir, a janela sai do alinhamento do CenterScreen, queria que ao expandir, a janela se auto alinhasse no centro da janela pai.

    Já até adicionei a seguinte instrução no evento Expander_Expanded, mas não resolveu.

            private void Expander_Expanded(object sender, RoutedEventArgs e)
            {
                this.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
            }
    Olha aki algumas imagens.

    Desde já agradeço ajuda de todos.

    Atenciosamente

    André



    domingo, 25 de agosto de 2013 19:15

Respostas

  • O startup location, como o nome diz é local ao INICIAR. Pelo que entendi, a mudança de tamanho é feita depois da janela já ter iniciado. Neste caso, vai precisar de um pouco de programação.

    Window mainWindow = Application.Current.MainWindow;
    this.Left = mainWindow.Left + (mainWindow.Width - this.ActualWidth) / 2;
    this.Top = mainWindow.Top + (mainWindow.Height - this.ActualHeight) / 2;
    

    Considerando que esta é a janela principal da aplicação! Caso contrário, mude o mainWindow para a sua janela. O código acima deve ser colocado no mesmo método que você colocou o seu código.

    quinta-feira, 29 de agosto de 2013 16:35

Todas as Respostas

  • Tente usar a propriedade UseLayoutRounding, ou ClipToBounds.

    segunda-feira, 26 de agosto de 2013 11:47
  • Olá JoaoMarques, habilitei as duas propriedade no xaml, mas infelizmente sem sucesso!

    Atenciosamente

    André

    segunda-feira, 26 de agosto de 2013 14:01
  • O startup location, como o nome diz é local ao INICIAR. Pelo que entendi, a mudança de tamanho é feita depois da janela já ter iniciado. Neste caso, vai precisar de um pouco de programação.

    Window mainWindow = Application.Current.MainWindow;
    this.Left = mainWindow.Left + (mainWindow.Width - this.ActualWidth) / 2;
    this.Top = mainWindow.Top + (mainWindow.Height - this.ActualHeight) / 2;
    

    Considerando que esta é a janela principal da aplicação! Caso contrário, mude o mainWindow para a sua janela. O código acima deve ser colocado no mesmo método que você colocou o seu código.

    quinta-feira, 29 de agosto de 2013 16:35