如何:用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/

10-13 03:09