如何:用C#(WPF)创建DockPanel
我正在尝试创建一个DockPanel
。到目前为止,DockPanel
看起来还不错。唯一的问题是,它不符合我的要求,请参见以下屏幕截图:
我希望“管理”与它的内容一样高(高度),并且说DataGrid
(下面的白色区域)中有10个元素。现在,我希望将其固定在左下角。现在,当我将窗口放大时,我希望“Geschäftskontakte”填充剩余的空闲区域。因此,我必须遵循以下条件:
<!-- Left / Right -->
<DockPanel DockPanel.Dock="Left" Name="dockPanelModule" Width="150">
<Label DockPanel.Dock="Top" Content="Geschäftskontakte" Name="labelModule">
</Label>
<DataGrid DockPanel.Dock="Top" Name="dataGridNavigation" Height="200" HeadersVisibility="None">
<!-- ... -->
</DataGrid>
<Label DockPanel.Dock="Top" Content="Administration" Name="labelAdministration">
</Label>
<DataGrid DockPanel.Dock="Top" Name="dataGridAdministration" HeadersVisibility="None">
<!-- ... -->
</DataGrid>
</DockPanel>
我已删除了不重要的信息,例如
Background
。在此先感谢您的帮助!
最佳答案
WPF DockPanel没有Dock.Fill选项,但是有LastChildFillProperty(默认情况下为true),因此您需要添加要增长的元素以最后填充空间。将所有项目都设置为DockPanel.Dock = Top,这会使这些项目乱序,但是通过将控件与面板分组,并为底部组指定DockPanel.Dock = Bottom,可以得到所需的结果:
<DockPanel DockPanel.Dock="Left" Name="dockPanelModule" Width="150" >
<StackPanel DockPanel.Dock="Bottom">
<Label Content="Administration" Name="labelAdministration">
</Label>
<DataGrid DockPanel.Dock="Bottom" Name="dataGridAdministration" HeadersVisibility="None" MinHeight="30" >
</DataGrid>
</StackPanel>
<DockPanel DockPanel.Dock="Top">
<Label DockPanel.Dock="Top" Content="Geschäftskontakte" Name="labelModule">
</Label>
<DataGrid DockPanel.Dock="Bottom" Name="dataGridNavigation" HeadersVisibility="None" MinHeight="75">
<!-- ... -->
</DataGrid>
</DockPanel>
</DockPanel>
关于c# - 如何:用C#(WPF)创建DockPanel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23684597/