首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wpf DockPanel问题

wpf DockPanel问题
EN

Stack Overflow用户
提问于 2011-11-04 13:58:32
回答 3查看 1.4K关注 0票数 0

我将DockPanel与ListView和StackPanel一起使用:

代码语言:javascript
复制
<DockPanel Margin="5" LastChildFill="True">
    <ListView Margin="5" ItemsSource="{Binding Source={StaticResource taxGroupSource}}" DockPanel.Dock="Top" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" VerticalAlignment="Stretch">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Last Name" DisplayMemberBinding="{Binding SerialNumber}" />
                <GridViewColumn Header="First Name" DisplayMemberBinding="{Binding Name}" />
            </GridView>
        </ListView.View>
    </ListView>
    <StackPanel DockPanel.Dock="Bottom" Style="{StaticResource buttonPanel}">
        <Button Content="Close" Click="CloseClick"/>
    </StackPanel>
</DockPanel>

当GridView的行数很大时,ListView会覆盖底层的StackPanel。为什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-04 14:03:08

我认为问题出在DockPanel上的LastChildFill本身。正如MSDN所解释的,LastChildFill使得StackPanel占用DockPanel中的剩余空间,即使您已将其设置为停靠在底部。尝试删除该属性,看看这是否有帮助。

编辑:单独删除属性并不能做到这一点。我通过交换ListView和StackPanel获得了预期的行为,但这改变了Tab键顺序(尽管这里只在两个项之间,所以将焦点设置为ListView会使其看起来正确)。

或者,您是否可以使用包含两行的网格--第一行的ListView高度为"*“,第二行的StackPanel高度为"Auto"?或者这是一个更复杂的布局的简化,在那里这是不起作用的?

票数 3
EN

Stack Overflow用户

发布于 2011-11-04 14:12:46

正如@DocMax所说的,只有在所有先前的孩子都被占用后,停靠面板中有一些可用的空间,最后一个孩子填充才会起作用。对于具有大量行的ListView,空间已经被它占用,因此堆栈面板没有空间可供占用。

我建议你给堆叠面板提供一些MinHeight。

票数 0
EN

Stack Overflow用户

发布于 2012-06-02 00:26:30

如果你不想使用网格,那么你可以先添加StackPanel,然后使用LastChildFill="True"添加ListView来解决它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8005414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档