У меня возникла проблема при переходе от горизонтальной ориентации к вертикальной ориентации и обратно к горизонтальной на панели стека с изменением свойства окна SizeToContent. Вот моя проблема: всякий раз, когда я перемещаюсь назад и вперед от вертикального к горизонтальному или наоборот, я изменяю размер на содержание, учитывая способ, которым меню, которое я создаю, должно быть сделано. Тем не менее, я не могу заставить окно изменить размер обратно до соответствующего размера, как раньше. Например:
Состояние А:
this.SizeToContent = Вручную
this.topLevelStackPanel.Orientation = Горизонтальный
Состояние B
this.SizeToContent = WidthAndHeight
this.topLevelStackPanel.Orientation = Vertical
Когда состояние A действительно, границы восстановления для окна имеют это значение: 22,29,960,22
При переходе от А к В границы восстановления изменяются на -1932, -532, 3212, 1092
Теперь я пытаюсь вернуться от B к A, и границы восстановления не меняются на 22,29,960,22
Скорее, я получаю огромное окно, которое закрывает мой экран. Как мне сбросить размеры и вернуться в прежнее состояние. Я застрял на этом некоторое время сейчас.
Вот мой XAML
<Window.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF528ab5" Offset="0"/>
<GradientStop Color="#FF002d62" Offset="1"/>
</LinearGradientBrush>
</Window.Background>
<Window.ContextMenu>
<ContextMenu>
<MenuItem Header="Exit" Click="ExitContextMenuItem_Click" />
</ContextMenu>
</Window.ContextMenu>
<Window.BorderBrush>
<SolidColorBrush />
</Window.BorderBrush>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Name="settingsExitStackPanel">
<Image x:Name="SettingsButton" HorizontalAlignment="Left" Source="Images/gear_icon.png" MouseDown="SettingsButton_MouseDown"/>
<TextBlock x:Name="pholder" Text=" " />
<Button x:Name="ExitButton" Content="X" Width="30" FontWeight="Bold" Click="ExitContextMenuItem_Click"/>
<TextBlock x:Name="pholder2" Text=" " />
</StackPanel>
</Grid>