WPF - DockPanel问题

时间:2011-01-26 18:07:21

标签: wpf wpf-controls

我是WPF的新手,我正在尝试了解DockPanel控件。我正在构建一个Window,并且正在使用DockPanel来按照我想要的方式停靠控件。但是,是否可以将DockPanel停靠在窗口的顶部?我似乎找不到办法做到这一点。理想情况下,我希望DockPanel将自己停靠在窗口的顶部,以便在调整Window的大小时,随着窗口水平调整大小,它会增大或缩小。

问题是我在DockPanel上找不到Doc属性。这不可能吗?

2 个答案:

答案 0 :(得分:3)

如果你想停靠它,你需要将它放在另一个DockPanel中。

话虽如此,我的经验是,当布局达到您所描述的复杂程度时,通常更好的方法是切换到使用网格控件。这使您可以对布局进行大量控制,并使动态增长的行/列(其间具有固定大小的部分)变得容易。


编辑以回应评论:

您可以使用根据需要进行缩放的网格。例如,通过使用星形语法,您可以使用一个网格,其中顶行始终是窗口大小的1/3,底行是2 / 3rds,如下所示:

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

有关调整大小的选项的详细信息,请参阅GridLength。您可以使用“自动”(适合内容),“*”根据空间或固定高度(放入数字)进行缩放。

答案 1 :(得分:0)

我不确定这是否是你想要的,但我有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>

希望这有帮助