予有需要下述性能的递归定义用户控制:帧间相关堆叠面板浆纱
有两列
第一包含周围的一些文本
第二列包含一个单一的边界这些相同类型的控件(递归部分)的堆栈
如果第一列中的框比第二列中的堆叠框的总高度更短,则框应扩展为使两列都为s ame高度。
如果第二列的总高度比第一列的框高,那么第二列堆栈中的最后一项应该展开,因此它们的高度相同。
因此,例如,它可能是这样的:
好了,到目前为止,我所做的就是创建一个水平叠层板,其中第一项是包含边界停放面板文字......第二列是绑定到一个子表垂直堆叠面板,创建递归用户控制......这样的..
<StackPanel Orientation="Horizontal" Background="AliceBlue">
<local:TMRequirementView Requirement="{Binding Baseline}" />
<StackPanel Orientation="Vertical">
<ItemsControl ItemsSource="{Binding Requirements}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:TMGridView Baseline="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
凡要求如下:
<DockPanel>
<Border MinHeight="50"
BorderBrush="Black" BorderThickness="2">
<TextBlock Text="{Binding Description}"
TextWrapping="Wrap" Background="Transparent" Height="Auto" />
</Border>
</DockPanel>
现在,如果堆叠的柱子更高,但它不起作用,如果第一列更高,并且我得到了空隙。任何想法如何处理这种相互依赖的高度?
更新: 因此,通过添加边框右侧列四周堆叠面板,我能看到的StackPanel其实并收到最小高度的变化。但是,即使有扩展空间,堆叠面板的孩子也不会自动更新。如果我在手之前修好堆叠面板的高度,那么孩子们会填满。我需要弄清楚的是,如何根据堆栈面板的最小高度更改来更新孩子的身高。
所以我想,也许将第二列堆栈面板的minheight参数设置为第一列高度参数,但它抱怨...有任何想法? – tbischel 2010-09-28 00:14:49
高度命令可以是NaN,我尝试绑定到ActualHeight属性,但无济于事。 – tbischel 2010-09-28 00:47:48