我的用户控件有两个子控件,一个列表和一个细节。WPF:布局问题
- 当在列表中选择任何内容,我想要列表填充整个控制
- 当选择的东西,我想列表,以填补上半部分和细节控制的下半部分。
动态改变细节控制的可见性很容易。我坚持的是如何调整列表的大小。
我的用户控件有两个子控件,一个列表和一个细节。WPF:布局问题
动态改变细节控制的可见性很容易。我坚持的是如何调整列表的大小。
斯坦尼斯拉夫给了我一个主意。使用两行网格,但不要设置高度。取而代之的是在屏幕的两个半边都有上部控制RowSpan。
上控制:
Grid.RowSpan="{p:PyBinding 1 if ($[MainList.SelectedIndex] > -1) else 2}"
下控制:
Visibility="{p:PyBinding BooleanToVisibility($[MainList.SelectedIndex] > -1)}"
你能不能把这个列表放在<Border>
或<Grid>
之内,而只是调整它呢?或者如果你想要滚动条,你可以把它放在<ScrollViewer>
之内。
如何更改可视性?如果你把你的子控件在网格中具有以下RowDefinitions:
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
与列表中的第一行和细节控制在第二设置,然后详细控制应自动调整名单Visibility = Collapsed
。
如果你这样做,下层控制器应该如何知道自己有多大? – 2010-01-27 09:04:40
我在答案中假定了固定高度。你是否需要它是容纳控件的一半大小?您可以使用一个转换器绑定到网格的ActualHeight属性,该转换器将传递给它的任何值减半。请张贴你想要做的事情的草图 - 修改它比猜测更容易。 – 2010-01-27 09:20:36
我不知道一个ActualHeight属性。这可以工作。 – 2010-01-27 16:56:49
你会如何写resizeing逻辑是什么? – 2010-01-27 09:09:01