我是WPF的新手,我正在尝试了解DockPanel控件。我正在构建一个Window,并且正在使用DockPanel来按照我想要的方式停靠控件。但是,是否可以将DockPanel停靠在窗口的顶部?我似乎找不到办法做到这一点。理想情况下,我希望DockPanel将自己停靠在窗口的顶部,以便在调整Window的大小时,随着窗口水平调整大小,它会增大或缩小。
问题是我在DockPanel上找不到Doc属性。这不可能吗?
答案 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>
希望这有帮助