WPF:布局问题

时间:2010-01-27 08:33:54

标签: wpf layout

我的用户控件有两个子控件,一个列表和一个细节。

  • 如果列表中未选择任何内容,我希望列表填满整个控件
  • 当选择某些内容时,我希望列表填充上半部分,细节控制下半部分。

动态更改细节控件的可见性很容易。我坚持的是如何调整列表的大小。

3 个答案:

答案 0 :(得分:1)

您如何更改可见性?如果将子控件放在具有以下RowDefinitions的网格中:

<Grid.RowDefinitions>
    <RowDefinition/>
    <RowDefinition Height="Auto"/>
</Grid.RowDefinitions>

第一行中的列表和第二行中的详细控件然后设置详细控件的Visibility = Collapsed应自动调整列表大小。

答案 1 :(得分:1)

斯坦尼斯拉夫给了我一个主意。使用两行网格,但不要设置高度。而是将上控制RowSpan跨越屏幕的两半。

上层控制:

Grid.RowSpan="{p:PyBinding 1 if ($[MainList.SelectedIndex] > -1) else 2}"

降低控制力:

Visibility="{p:PyBinding BooleanToVisibility($[MainList.SelectedIndex] > -1)}"

答案 2 :(得分:0)

你能不能把列表放在<Border><Grid>之内,只是调整大小?或者,如果您想要滚动条,可以将其放在<ScrollViewer>