对齐窗口顶部和底部的内容

时间:2021-02-03 15:23:05

标签: wpf xaml

我不知道如何在 WPF 中使某些内容与屏幕顶部对齐,而某些内容与屏幕底部对齐。基本上,我想在窗口的顶部放置两行内容,在底部放置两行。请注意,我是 WPF 的初学者。

我是这样尝试的:

<StackPanel>
   <StackPanel VerticalAlignment="Top">
       <!-- some code here -->
   </StackPanel>

   <StackPanel VerticalAlignment="Bottom">
       <!-- some code here -->
   </StackPanel>
</StackPanel>

但这行不通。有什么解决办法?

2 个答案:

答案 0 :(得分:1)

您可以为此使用 DockPanel。使用 Dock 附加属性,您可以设置子元素的位置。停靠面板中的最后一个元素将占据剩余空间。如果您不想这样,可以将其 LastChildFill 属性设置为 false

<DockPanel>
   <StackPanel DockPanel.Dock="Top">
      <Button Content="Top 1" />
      <Button Content="Top 2" />
   </StackPanel>
   <StackPanel DockPanel.Dock="Bottom">
      <Button Content="Bottom 1" />
      <Button Content="Bottom 2" />
   </StackPanel>
   <Grid>
      <TextBlock Text="Center"
                 VerticalAlignment="Center"
                 HorizontalAlignment="Center"/>
   </Grid>
</DockPanel>

或者没有 StackPanel 甚至更简单。

<DockPanel>
   <Button DockPanel.Dock="Top" Content="Top 1" />
   <Button DockPanel.Dock="Top" Content="Top 2" />
   <Button DockPanel.Dock="Bottom" Content="Bottom 1" />
   <Button DockPanel.Dock="Bottom" Content="Bottom 2" />
   <TextBlock Text="Center"
              VerticalAlignment="Center"
              HorizontalAlignment="Center"/>
</DockPanel>

结果看起来像这样。

DockPanel example

答案 1 :(得分:0)

这样的事情可能会奏效。我还没有在 VS 中运行它,所以它可能会稍微偏离

printToConsole(std::string x)

表示占用所有剩余空间。

表示只是扩展以适应包含元素