使用下面的设置,我可以将窗口的整个宽度着色为紫色。内部堆栈面板为黄绿色并移至左侧。
<StackPanel HorizontalAlignment="Stretch"
Orientation="Horizontal"
Background="BlueViolet"
Height="70">
<StackPanel HorizontalAlignment="Left"
Orientation="Horizontal"
Background="Chartreuse" >
我原以为如果我将内部堆栈面板的水平对齐方式更改为拉伸(stretch),它也会填充所有宽度,但这种情况并没有发生。我尝试过右对齐和拉伸(stretch)对齐,似乎它不会影响内部控件的宽度。
根据帖子,我发现是实现它的方法(并且它当然适用于外部控制)。我可以缺少什么吗?我已经删除了外部面板中声明的其他控件(即黄绿色控件的所有兄弟控件),没有任何区别。
最佳答案
StackPanel
将为其内容提供所需的空间,但也仅提供所需的空间。
如果你想完全填充窗口的宽度,只需将外部的StackPanel
替换为Grid
如果您希望 StackPanel 至少填满整个面板,可以将 MinWidth
绑定(bind)到其父级 ActualWidth
:
<StackPanel HorizontalAlignment="Stretch"
Name="parent"
Orientation="Horizontal"
Background="BlueViolet"
Height="70">
<StackPanel HorizontalAlignment="Stretch"
MinWidth="{Binding Path=ActualWidth, ElementName=parent}"
Orientation="Horizontal"
Background="Chartreuse" >
</StackPanel>
</StackPanel>
关于c# - 无法拉伸(stretch)内部 StackPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32005675/