WPF用户对齐项目

时间:2014-04-16 21:06:59

标签: wpf alignment

我的应用需要让用户对齐项目;左,右和中心。我在编写应用程序以处理此问题时遇到问题,这意味着应用程序可以左对齐或右对齐但不是全部三个。我如何通过按钮按下(例如,我能够在XMLA中进行实际格式化后知道如何执行此操作)来获取左对齐,右对齐和中心对齐的示例5个按钮的项目?

我的第一个想法是使用停靠面板做这件事;

<DockPanel MinWidth="500" Background="LightGray" Margin="20" LastChildFill="False">
   <Button Margin="10" DockPanel.Dock="Left" >one</Button>
   <Button Margin="10" DockPanel.Dock="Left">two</Button>
   <Button Margin="10" DockPanel.Dock="Left">three</Button>
   <Button Margin="10" DockPanel.Dock="Left">four</Button>
   <Button Margin="10" DockPanel.Dock="Left">five</Button>
</DockPanel>

这适用于左右对齐。问题是没有DockPanel.Dock =“中心”

接下来尝试了一个Grid;

<Grid Background="LightGray" MinWidth="500">
    <Button HorizontalAlignment="Left" Margin="10,10,10,10">one</Button>
    <Button HorizontalAlignment="Left" Margin="10,10,10,10">two</Button>
    <Button HorizontalAlignment="Left" Margin="10,10,10,10">three</Button>
    <Button HorizontalAlignment="Left" Margin="10,10,10,10">four</Button>
    <Button HorizontalAlignment="Left" Margin="10,10,10,10">five</Button>
</Grid>

问题是这种情况发生了;

enter image description here

编辑:显然我没有把我的问题弄清楚。

edit2:@Henka程序员的建议不起作用。首先,我认为他的意思是Horizo​​ntalAlignment而不是VerticalAlignment。使用此代码;

<StackPanel Orientation="Horizontal"  HorizontalAlignment="Right" Background="LightGray" MinWidth="500">
<Button Content="btn 01" />
<Button Content="btn 02" />
<Button Content="btn 03" />
<Button Content="btn 0" />
</StackPanel>

给出这个结果;

enter image description here

HorizontalAlignment="Right"更改为HorizontalAlignment="Center"没有任何区别

2 个答案:

答案 0 :(得分:0)

我认为你的意思是:

// ...
<Grid>

<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<Button Content="btn 01" />
<Button Content="btn 02" />
<Button Content="btn 03" />
<Button Content="btn 0" />
</StackPanel>

</Grid>
// ...

您可以将StackPanel的对齐方式更改为:

  • VeriticalAlignment =&#34;中心&#34;
  • VeriticalAlignment =&#34;右&#34;
  • VeriticalAlignment =&#34;左&#34;

和StackPanel方向:

  • 垂直

  • 水平

答案 1 :(得分:0)

StackPanel上的水平对齐属性将使StackPanel相对于其父元素对齐。这很好用:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="1000">
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Top">
        <Button Content="Button 1" />
        <Button Content="Button 2" />
        <Button Content="Button 3" />
        <Button Content="Button 4" />
        <Button Content="Button 5" />
    </StackPanel>
</Window>