【发布时间】:2015-06-01 18:43:25
【问题描述】:
我有 StackPanel,我在其中包裹了 7 个不同宽度的矩形。
我在堆栈中的第一个矩形,我定义了最小和最大宽度以及默认折叠的其他矩形之一(见下文 x:Name="ToBeCollapsed"),但在特定条件下可见C#。
我的问题是,如果矩形“ToBeCollasped”折叠,第一个矩形不会拉伸到最大宽度。我的想法是,如果折叠的矩形被折叠,第一个矩形会将空间填充到“755”的 MAX。
我的逻辑错了吗?
我的布局如下:
<StackPanel x:Name="RectangleColumns" Width="1840" Orientation="Horizontal">
<Rectangle MinWidth="575" MaxWidth="755" />
<Rectangle Width="315"/>
<Rectangle Width="180" />
<Rectangle Width="180"/>
<!--If collapsed first rectangle should grow to 755. MinWidth + 180-->
<Rectangle x:Name="ToBeCollapsed" Width="180"/>
<Rectangle Width="220"/>
<Rectangle Width="190"/>
</StackPanel>
【问题讨论】:
-
StackPanel 是水平方向的?
-
听起来你最好使用网格。
-
@Clemens。是的,StackPanel 是水平方向。已更新。
-
是的,StackPanel 无法按照您的想法工作。您不断增长/缩小的 Rectangle 永远不会重绘以更新布局。就像@BradleyUffner 建议的那样,只需使用网格代替,小菜一碟。