布置以下项目的最佳做法是什么?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