是否有可能有一個<StackPanel>
或標籤(或按鈕,無論)橫跨其父控制(例如Window
),並填寫所有允許的空間?水平堆疊面板填充家長控制
例如,如果我有3個控制
_窗口width_ _
[1] _ _ [2] _ _ [3]
個
或2控制
_窗口width_ _
[1] _ __ _ __ _ [2]
在每種情況下窗口的全部寬度被利用,每個邊緣控制分別被左對齊和右對齊。
是否有可能有一個<StackPanel>
或標籤(或按鈕,無論)橫跨其父控制(例如Window
),並填寫所有允許的空間?水平堆疊面板填充家長控制
例如,如果我有3個控制
_窗口width_ _
[1] _ _ [2] _ _ [3]
個
或2控制
_窗口width_ _
[1] _ __ _ __ _ [2]
在每種情況下窗口的全部寬度被利用,每個邊緣控制分別被左對齊和右對齊。
StackPanel將堆棧控件,所以不是簡短的答案。這不是StackPanel設計的目的。
您可以像Vlad建議的那樣使用網格。事情是這樣的:
<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>
那麼我是否需要動態管理爲每個新條目添加一列,並將每個控件放入它自己的單元格中? – Ternary 2012-03-28 18:20:15
在顯示項目的動態集合的情況下,您可能需要考慮使用ListBox控件並將它的ItemPanel設置爲UniformGrid。這可能會接近你想要的,但我不認爲你會在第一個和最後一個項目上得到左右的理由。 – 2012-03-28 18:37:35
StackPanel m_pstackpanel = (StackPanel)this.Parent;
m_pstackpanel.Children.Clear();
keypadclasslist keypadWindow = new keypadclasslist(m_pLstReceiver);
m_pstackpanel.Children.Add(keypadWindow);
也許你可以使用一個'Grid'呢?有了「網格」,這是可能的。 – Vlad 2012-03-28 16:46:04
那麼你是一個可以均勻地將它的孩子水平放置的控件?那是對的嗎? – 2012-03-28 18:03:35
謝謝我會考慮這一點。 – Ternary 2012-03-28 18:20:21