我有一个带有两个按钮的dockpanel
<Window x:Class="PracticeWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<DockPanel LastChildFill="True">
<Button Name="btn1" DockPanel.Dock="Top">Button 1</Button>
<Button Name="btn2" DockPanel.Dock="Top" Visibility="Collapsed">Button 2</Button>
</DockPanel></Window>
问题是按钮btn2正在参与布局,即使它的Visibility =“Collapsed”。我希望btn1必须填满整个空间。 相反,btn1坚持窗户的顶部位置。 上面的代码必须等同于
<DockPanel LastChildFill="True">
<Button Name="btn1" DockPanel.Dock="Top">Button 1</Button>
<!--
<Button Name="btn2" DockPanel.Dock="Top" Visibility="Collapsed">Button 1</Button>
-->
</DockPanel>
为什么会这样。
答案 0 :(得分:3)
Vinod,在DockPanel中,最后一项将始终采用DockPanel中的其余布局。因为你已经将Top设置为第一个按钮,我认为第二个按钮上的Dock属性将被忽略。
而不是使用DockPanel,您可以使用AutoSize属性尝试“网格”面板吗?
答案 1 :(得分:0)
您可以通过在DockPanel.Children
属性中手动添加/删除按钮来获得所需的行为。更多关于MSDN Panel.Children article.
答案 2 :(得分:0)
以上代码必须等同于......
不,这只是你的错误假设。折叠按钮仍然是最后一个子节点,因此第一个按钮仍然停靠在顶部,折叠按钮与布局无关。