代码之家  ›  专栏  ›  技术社区  ›  Burt

WPF/Silverlight布局最佳实践

  •  4
  • Burt  · 技术社区  · 14 年前

    下列各项的最佳做法是什么?

    Valid XHTML http://www.hughgrice.com/layout.gif

    我特别感兴趣的是应该使用哪些控件,以及如何将“删除”图标放置在右侧,将“工具”图标始终放置在中间?

    提前谢谢。

    3 回复  |  直到 14 年前
        1
  •  5
  •   Mart    14 年前

    我更喜欢的是DockPanel而不是Grid:

    <DockPanel>
        <Button>Add</Button>
        <Label>This is a label</Label>
        <Button DockPanel.Dock="Right">Del</Button>
        <Button HorizontalAlignment="Center">Setting</Button>
    </DockPanel>
    
        2
  •  3
  •   Ana Betts    14 年前

    这个怎么样:

    <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>
    
        3
  •  3
  •   AnthonyWJones    14 年前

    这个 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将包含两个项目。每个面板的内容只需要关注其相对于面板中其他同级项的布局。