佈置以下項目的最佳做法是什麼?WPF/Silverlight佈局最佳實踐
Valid XHTML http://www.hughgrice.com/layout.gif。
我特別感興趣的是我應該使用哪些控件,以及如何將刪除圖標定位在右側,並且工具圖標始終顯示在中間?
在此先感謝。
佈置以下項目的最佳做法是什麼?WPF/Silverlight佈局最佳實踐
Valid XHTML http://www.hughgrice.com/layout.gif。
我特別感興趣的是我應該使用哪些控件,以及如何將刪除圖標定位在右側,並且工具圖標始終顯示在中間?
在此先感謝。
我對這種情況下的優選面板是DockPanel中,而不是一個網格:
<DockPanel>
<Button>Add</Button>
<Label>This is a label</Label>
<Button DockPanel.Dock="Right">Del</Button>
<Button HorizontalAlignment="Center">Setting</Button>
</DockPanel>
DockPanel在Silverlight中並不存在,儘管它在工具包中可用。如果您有其他原因需要包含工具包控件,我會同意DockPanel更好地描述這個意圖。 – AnthonyWJones 2010-02-21 19:20:17
你是對的Silverlight,但因爲我不能沒有DockPanel我從工具包中提取它。這樣我就避免了完全加載工具包。 – Mart 2010-02-21 19:26:13
如何:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Image Source="Plusbutton" />
<Label Text="This is a Label" Margin="3,0,3,0" Grid.Column="1" />
<Image Source="Gear" HorizontalAlignment="Center" Grid.Column="2" />
<Image Source="Minusbutton" Margin ="3,0,3,0" Grid.Column="3" />
</Grid>
的Grid
,給這個: -
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackPanel HorizontalAlignment="Left" Grid.Column="0">
<!-- Your content here -->
</StackPanel>
<StackPanel HorizontalAlignment="Center" Grid.Column="1">
<!-- Your content here -->
</StackPanel>
<StackPanel HorizontalAlignment="Right" Grid.Column="2">
<!-- Your content here -->
</StackPanel>
</Grid>
這種方法從內容本身解耦左,中,右內容的基本格式。在你的例子中,左邊的StackPanel將有兩個項目。每個面板的內容只需要關心其相對於面板中其他兄弟項目的佈局。
好,但我會建議添加Grid.Column =「0」爲清晰。 – Josh 2010-02-21 19:14:23
@Josh:加入以減輕你的美感。 ;) – AnthonyWJones 2010-02-21 19:16:46
大聲笑我知道當談到XAML時,我感到非常痛苦。 – Josh 2010-02-21 19:36:08
我來是混合WPF Silverlight的問題往往是一個壞主意的結論。如果你使用的是WPF,DockPanel,這裏顯然有一個正確的答案。當使用Silverlight – AnthonyWJones 2010-02-21 19:25:21