Изменение размеров окон в WPF после изменения ориентации и sizeToContent - PullRequest
1 голос
/ 30 июня 2011

У меня возникла проблема при переходе от горизонтальной ориентации к вертикальной ориентации и обратно к горизонтальной на панели стека с изменением свойства окна 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>

...