То, что я пытаюсь сделать, это показать окно, которое явно не имеет высоты / ширины (оба значения опущены или установлены в Auto
). Я догадывался, что окно узнает его размер путем автоматического вычисления всех содержащихся в нем пользовательских элементов управления, но на самом деле это не работает!
Вместо этого я получаю большое окно с Actualwidth
и Actualheight
значения как установлено в 512 (?!?!)
Объявление окна:
<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>
Отображение этого окна в виде диалога через:
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
Есть ли решение для этого? Я не хочу явно устанавливать размер моего окна, потому что многие элементы управления в форме будут свернуты на основе параметров конструктора, и попытка найти фактический размер формы будет сложной (и уродливой).
.WindowStartupLocation
"CenterScreen"
Ответы:
Установите свойство окна
SizeToContent="WidthAndHeight"
. Это должно помочь.источник
SizeToContent="WidthAndHeight"
;)Height="Auto"
иWidth="Auto"
не выполняет то же самое? Я предполагаю, потому что содержимое окна не учитывается с этими настройками.Старый вопрос, но обновленный ответ:
Как @ Muad'Dib предложил в своем ответе:
Вы должны установить
SizeToContent="WidthAndHeight"
.Если размер содержимого окна увеличивается больше размера экрана, окно может переполниться с экрана. Итак, вы должны рассмотреть:
источник
MaxHeight="400"
не соблюдается? растет до предела экрана?Ну, вы не можете установить высоту окна на авто, для этого вы можете использовать небольшую хитрость, назвать основной контейнер основной сетки, установить его высоту на авто, а затем привязать высоту окна к высоте основной сетки
источник
Установить размер на текущем экране с загруженными окнами событий
источник