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

5 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>
Run Code Online (Sandbox Code Playgroud)

use*_*994 9

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

<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>
Run Code Online (Sandbox Code Playgroud)


小智 7

知道了!我将该Orientation="Horizontal"属性添加到StackPanel. 但是,这只会对齐此特定面板的内容。例如,如果您想让StackPanel2 个面板垂直对齐,然后将这 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>
Run Code Online (Sandbox Code Playgroud)