gpt4 book ai didi

c# - 如何: Create a DockPanel in C# (WPF)

转载 作者:行者123 更新时间:2023-11-30 22:06:21 28 4
gpt4 key购买 nike

如何:在 C# (WPF) 中创建 DockPanel

我正在尝试创建一个 DockPanelDockPanel 目前看起来还不错。唯一的问题是,它不像我想要的那样适合 - 请参见以下屏幕截图:

Screenshot

我希望“Administration”与其内容一样高(高度),假设 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>

我已经删除了不重要的信息,例如背景

预先感谢您的帮助!

最佳答案

WPF DockPanel 没有 Dock.Fill 选项,但它有一个 LastChildFillProperty (默认情况下为真),因此您需要将要增长的元素添加到最后填充空间。将所有项目设置为 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# - 如何: Create a DockPanel in C# (WPF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23684597/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com