2011-01-26 44 views
0

我对WPF非常陌生,并且正在尝试理解DockPanel控件。我正在构建一个Window,并且正在使用DockPanel以按照我希望的方式停靠控件。然而,DockPanel本身可以停靠在窗口的顶部吗?我似乎无法找到办法做到这一点。理想情况下,我希望将DockPanel自己放置在我的窗口的顶部,以便在窗口调整大小时,它会随着窗口水平调整大小而增大或缩小。WPF - DockPanel问题

问题是我无法在DockPanel本身上找到Doc属性。这不可能做到吗?

回答

3

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

这就是说,我的经验是,当布局达到您所描述的复杂程度时,切换到使用网格控件通常会更好。这给了你对布局的大量控制,并且使动态增长的行/列(在两者之间具有固定大小的部分)变得容易。


编辑回应评论:

您可以使用扩展需要一个网格。例如,通过使用星语法,你可以有一个网格,顶行始终窗口大小的1/3,而下排为2 /三分之二,就像这样:

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

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

+0

@Reed - 我做了这个声音要复杂得多比它确实是。让我试着简化问一个问题。假设您想在窗口中放置一个选项卡控件,并将其停靠在窗口顶部,以便在用户水平调整窗口大小时水平扩展或缩小。你会怎么做? – 2011-01-26 18:16:00

0

我不确定这是你想要的,但我有一个DockPanelMenu。当我调整窗口大小时,菜单调整大小。

这里是我的代码:

<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> 

希望这有助于