XAML - 如何在StackPanel中将控件彼此对齐

时间:2015-11-21 09:50:05

标签: wpf xaml

所以我一直试图将以下代码中的控件彼此对齐。但它似乎不起作用。首先,我没有StackPanel,但我无法正确对齐我的控件。

这是我的代码:

        <StackPanel x:Name="doelenContentPanel" HorizontalAlignment="Center">
        <TextBlock x:Name="txtBOmzet" TextWrapping="Wrap" Text="Omzet:  " Margin="10,58,-10,-58" HorizontalAlignment="Left" />
        <TextBox x:Name="txtbOmzet" Margin="82,58,0,0" TextWrapping="Wrap" Text="" HorizontalAlignment="Center"/>
        <TextBlock x:Name="txtBOmzetMaand" Margin="151,58,0,0" TextWrapping="Wrap" Text="Maand" HorizontalAlignment="Right" />
        </StackPanel>

2 个答案:

答案 0 :(得分:8)

首先,不要使用硬编码的Margin属性,然后从每个控件中删除HorizontalAlignment。 现在,要将控件彼此对齐,请设置StackPanel

的Orientation属性
<StackPanel x:Name="doelenContentPanel" Orientation="Horizontal">
  <TextBlock x:Name="txtBOmzet" TextWrapping="Wrap" Text="Omzet:  "  />
  <TextBox x:Name="txtbOmzet" TextWrapping="Wrap" Text="" />
  <TextBlock x:Name="txtBOmzetMaand" TextWrapping="Wrap" Text="Maand" />
</StackPanel>

答案 1 :(得分:3)

知道了! 我将Orientation="Horizontal"属性添加到StackPanel。但是,这仅对齐此特定面板的内容。例如,如果您希望垂直对齐2 StackPanel,然后将这2个面板的内容水平对齐,则必须执行以下操作:

<StackPanel x:Name="contentWrapper" Orientation="Vertical">
    <StackPanel x:Name="doelenContentPanel" Orientation="Horizontal">
    <TextBlock x:Name="txtBOmzet" TextWrapping="Wrap" Text="Omzet:  "  />
    <TextBox x:Name="txtbOmzet" TextWrapping="Wrap" Text="" />
    <TextBlock x:Name="txtBOmzetMaand" TextWrapping="Wrap" Text="Maand" />
</StackPanel>
<StackPanel x:Name="secondPanel" Orientation="Horizontal">
    *this looks familiar to the first panel*
</StackPanel>