在父容器(例如Window
)中水平排列<StackPanel>
或标签(或按钮等)并使其填充所有允许的空间,是否有可能?
例如,如果我有3个控件:
_ 窗口宽度__
[ 1 ]__ [ 2 ] __ [ 3 ]
或者有2个控件:
_ 窗口宽度__
[ 1 ]_______ [ 2 ]
在每种情况下,完整的窗口宽度都被利用,每个边缘控件分别左右对齐。
在父容器(例如Window
)中水平排列<StackPanel>
或标签(或按钮等)并使其填充所有允许的空间,是否有可能?
例如,如果我有3个控件:
_ 窗口宽度__
[ 1 ]__ [ 2 ] __ [ 3 ]
或者有2个控件:
_ 窗口宽度__
[ 1 ]_______ [ 2 ]
在每种情况下,完整的窗口宽度都被利用,每个边缘控件分别左右对齐。
StackPanel可以堆叠控件,所以答案是否定的。这不是StackPanel的设计目的。
你可以像Vlad建议的那样使用网格(Grid)。就像这样:
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<Button Width="20" Height="20" Grid.Column="0"/>
<Button Width="20" Height="20" Grid.Column="2"/>
<Button Width="20" Height="20" Grid.Column="4"/>
</Grid>
StackPanel m_pstackpanel = (StackPanel)this.Parent;
m_pstackpanel.Children.Clear();
keypadclasslist keypadWindow = new keypadclasslist(m_pLstReceiver);
m_pstackpanel.Children.Add(keypadWindow);
Grid
代替?使用Grid
就可以实现这个功能。 - Vlad