WPF - DockPanel Вопрос - PullRequest
       6

WPF - DockPanel Вопрос

0 голосов
/ 26 января 2011

Я очень новичок в WPF и пытаюсь понять элемент управления DockPanel.Я строю Окно и использую DockPanel, чтобы закрепить элементы управления так, как я хочу.Однако возможно ли закрепить саму DockPanel, скажем, в верхней части окна?Я не могу найти способ сделать это.В идеале мне бы хотелось, чтобы сама DockPanel прикреплялась к верхней части моего окна, чтобы при изменении размера окна оно увеличивалось или уменьшалось по мере горизонтального изменения размера окна.

Проблема заключается в том, что я не могу найти свойство Docна самой панели DockPanel.Разве это невозможно сделать?

Ответы [ 2 ]

3 голосов
/ 26 января 2011

Вам необходимо разместить его в другой DockPanel, если вы хотите закрепить его.

При этом мой опыт показывает, что когда макет достигает уровня сложности, который вы описываете, часто лучше переключиться на использование элемента управления Grid. Это дает вам огромный контроль над макетом и упрощает динамически растущие строки / столбцы (с фиксированными долями между ними). ​​


Редактировать в ответ на комментарии:

Вы можете использовать сетку, которая масштабируется по мере необходимости. Например, используя синтаксис «звезда», вы можете создать сетку, в которой верхняя строка всегда равна 1/3 размера окна, а нижняя строка - 2/3, например:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="2*" />
    </Grid.RowDefinitions>
</Grid>

Подробнее о параметрах определения размеров см. GridLength . Вы можете использовать «Авто» (подгонка к содержимому), «*» для масштабирования по пространству или фиксированную высоту (указать число).

0 голосов
/ 26 января 2011

Я не уверен, если это то, что вы хотите, но у меня есть DockPanel с Menu.Когда я изменяю размер окна, меню изменяется вместе с ним.

Вот мой код:

<Grid>
    <DockPanel Height="50" Margin="0" Name="MenuDockPanel" VerticalAlignment="Top" Width="Auto">

    <Menu Height="23" Name="MenuPanel" Width="Auto" VerticalAlignment="Top">
    <MenuItem Header="_File">
    </Menu>
    </DockPanel>
<Grid>

Надеюсь, это поможет

...