To, co próbuję zrobić, to pokazać okno, które nie ma jawnie wysokości / szerokości (obie wartości zostały pominięte lub ustawione na Auto
). Zgadywałem, że okno dowie się o swoim rozmiarze poprzez automatyczne obliczenie wszystkich zawartych rozmiarów kontrolek użytkownika, ale tak naprawdę to nie działa!
Zamiast tego mam duże okno z Actualwidth
i Actualheight
wartości ustawione na 512 (?!?!)
Deklaracja okna:
<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>
Pokazywanie tego okna jako okna dialogowego poprzez:
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
Czy jest na to rozwiązanie? Nie chcę jawnie ustawiać rozmiaru mojego okna, ponieważ wiele kontrolek w formularzu zostanie zwiniętych w oparciu o parametry konstruktora, a próba znalezienia rzeczywistego rozmiaru formularza byłaby trudna (i brzydka).
.WindowStartupLocation
ustawionym na"CenterScreen"
Odpowiedzi:
Ustaw właściwość okna
SizeToContent="WidthAndHeight"
. To powinno pomóc.źródło
SizeToContent="WidthAndHeight"
;)Height="Auto"
iWidth="Auto"
nie osiągam tego samego? Zgaduję, ponieważ zawartość okna nie jest uwzględniana przy tych ustawieniach.Stare pytanie, ale zaktualizowana odpowiedź:
Jak sugerował @ Muad'Dib w swojej odpowiedzi:
powinieneś ustawić
SizeToContent="WidthAndHeight"
.Jeśli rozmiar zawartości okna wzrośnie bardziej niż rozmiar ekranu, okno może przepełnić ekran. Musisz więc rozważyć:
źródło
MaxHeight="400"
nie jest przestrzegane? rośnie aż do limitu ekranu?Cóż, nie możesz ustawić wysokości okna na auto, aby to zrobić, możesz użyć małej sztuczki, nazwać główny główny kontener siatki, ustawić jego wysokość na auto, a następnie powiązać wysokość okna z wysokością głównej siatki
źródło
Ustaw rozmiar na ekranie bieżącym z załadowanymi oknami zdarzeń
źródło