O que estou tentando fazer é mostrar uma janela que não tenha explicitamente uma altura / largura (ambos os valores omitidos ou definidos como Auto
). Eu estava imaginando que a janela descobriria seu tamanho calculando automaticamente todos os tamanhos de controles de usuário contidos, mas isso não funciona!
Em vez disso, recebo uma grande janela com Actualwidth
e os Actualheight
valores definidos como 512 (?!?!)
Declaração de janela:
<Window x:Class="Window3"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window3"
Height="Auto">
<StackPanel>
<Label>Window</Label>
</StackPanel>
</Window>
Mostrando esta janela como um diálogo via:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click
Dim dlg As New Window3
dlg.ShowDialog()
End Sub
Existe uma solução para isso? Não quero definir explicitamente o tamanho da minha janela porque muitos controles no formulário serão recolhidos com base nos parâmetros do construtor, e tentar encontrar o tamanho real do formulário seria complicado (e feio).
.WindowStartupLocation
conjunto de"CenterScreen"
Respostas:
Defina a propriedade da janela
SizeToContent="WidthAndHeight"
. Isso deve ajudar.fonte
SizeToContent="WidthAndHeight"
;)Height="Auto"
eWidth="Auto"
não realiza a mesma coisa? Suponho que o conteúdo da janela não seja considerado com essas configurações.Pergunta antiga, mas uma resposta atualizada:
Como @ Muad'Dib sugeriu em sua resposta:
você deve definir
SizeToContent="WidthAndHeight"
.Se o tamanho do conteúdo da janela aumentar mais que o tamanho da tela, a janela poderá exceder a tela. Então, você deve considerar:
fonte
MaxHeight="400"
não for respeitado? cresce até o limite da tela?Bem, você não pode definir a altura da janela como automática, para fazer isso, use um pequeno truque, nomeie o contêiner principal da grade principal, defina sua altura como automática e vincule a altura da janela à altura da grade principal
fonte
Definir tamanho na tela atual com janelas de eventos carregadas
fonte