2

我有一个带有两个按钮的停靠面板

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

为什么会这样。

4

3 回答 3

3

Vinod,在 DockPanel 中,最后一项将始终占据 DockPanel 中的其余布局。因为您已经将 Top 设置为您的第一个按钮,所以我认为第二个按钮上的 Dock 属性将被忽略。

而不是使用 DockPanel,您可以尝试使用 AutoSize 属性的“网格”面板?

于 2011-08-30T11:16:20.760 回答
0

DockPanel.Children您可以通过手动向/从属性添加/删除按钮来获得所需的行为。有关MSDN Panel.Children 文章的更多信息。

于 2011-08-30T11:39:33.613 回答
0

上面的代码必须等价于...

不,这只是您的错误假设。折叠按钮仍然是最后一个子按钮,所以第一个按钮仍然停靠在顶部,折叠按钮与布局无关。

于 2011-08-30T12:27:35.807 回答