0

我有一个这样的页面:

<Grid>
   <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
       here are contents
       they are forever absolutely in the center of the screen
       no matter of the resolution/size
   </StackPanel>
</Grid>

一切正常。但现在我想在左上角添加一个后退按钮。 例子

而且我不想像这样将网格分成 2 列和 2 行: 在此处输入图像描述

内容不再绝对居中,甚至我们可以按百分比分割网格,因为内容有时很宽有时很窄。

我想知道如何保持内容水平/垂直对齐“中心”,然后设置后退按钮相对于内容的位置。

4

2 回答 2

1

我建议使用具有 3 列的网格布局,以确保内容居中,列宽设置为 *、Auto、*。这将确保主要内容始终居中,而不关心按钮的大小。然后,您可以根据需要使用边距设置分隔。这是我在 SL、WPF 和 Metro 中使用的技术。

<Grid>
    <Grid.ColumnDefinitions>
         <ColumnDefinition/>
         <ColumnDefinition Width="Auto"/>
         <ColumnDefinition/>
    </Grid.ColumnDefinitions>

    <Button HorizontalAlignment="Right" VerticalAlignment="Top" Content="Do Something"/>
    <ContentControl VerticalAlignment="Top" Content="My custom content"/>
</Grid>
于 2012-08-29T03:08:15.947 回答
0

有点hacky的答案

您可以通过将堆栈面板定位在中心来实现,然后在按钮的宽度上设置一个负的左边距,以将所有内容向左移动所需的数量......

<Grid>
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Margin="-45,0,0,0">
        <button with width and padding totalling 45px />
        here are contents
        they are forever absolutely in the center of the screen
        no matter of the resolution/size
    </StackPanel>
</Grid>
于 2012-08-17T11:35:50.667 回答