Как получить единственный дочерний элемент DockPanel для закрепления сверху

StackOverflow https://stackoverflow.com/questions/653445

  •  19-08-2019
  •  | 
  •  

Вопрос

Ниже я говорю " DockPanel.Top " в меню, но оно находится в центре . (?)

Если я уберу атрибут высоты из меню, он будет закреплен сверху, но будет высотой около 200 пикселей. (?)

Я думал, что именно для этого и был LastChildFill.

Как я могу заставить этот дочерний элемент DockPanel пристыковаться сверху без других элементов в панели ввода?

<Window x:Class="TestContainer1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="480" Width="600" Loaded="Window_Loaded">

    <DockPanel HorizontalAlignment="Stretch" 
               Margin="0,0,0,0" 
               Width="Auto" 
               LastChildFill="True">

        <Menu x:Name="panelMenuTop" 
              Width="Auto" 
              Height="25" 
              DockPanel.Dock="Top">

            <MenuItem Header="File">
                <MenuItem Header="Close" 
                          Click="CloseApplication_Click"/>
            </MenuItem>
        </Menu>

    </DockPanel>
</Window>
Это было полезно?

Решение

Ваше меню заполняет всю область, поэтому оно выглядит по центру. Вы можете просто дать Меню VerticalAlignment = & Quot; Top & Quot; или дайте DockPanel еще несколько детей, как сказал Хенк.

Другие советы

Изменить LastChildFill = " True " to LastChildFill = " False "

Но лучший ответ: дайте DockPanel еще больше детей. Как, может быть, другой DockPanel.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top