Windows Phone Pivot显示上面应该的位置

时间:2014-09-05 03:44:48

标签: xaml windows-phone-8 windows-phone-8.1

我有以下xaml

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <StackPanel Orientation="Horizontal">
        <Frame Height="Auto" Width="200" Background="Green" />
    </StackPanel>
    <Pivot Grid.Row="1" Background="Red" Width="200" VerticalAlignment="Stretch" Title="Pivot Title">
        <PivotItem Header="Blah">
            <TextBlock Text="Pivot content"/>
        </PivotItem>
    </Pivot>
</Grid>

产生以下布局

Screentshot

问题是枢轴出现在我认为逻辑上应该出现的位置上方。枢轴应出现在中间标记下方,但它出现在它上方约27个像素处。我当然可以在枢轴上添加一个上边距以将其向下推,但我想先了解为什么它首先出现在那里。

1 个答案:

答案 0 :(得分:2)

该问题的原因是Pivot 垂直边距取决于状态栏的边界模式,因为Pivot打算成为页面的唯一子元素。如果您的边界模式设置为UseVisible并且您的状态栏可见,则数据透视的垂直边距将为负数(约-20,我认为)。因此,如果您将此代码添加到构造函数:

ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseCoreWindow);

根本没有垂直边距,你会有预期的行为:

enter image description here