网格控件无法覆盖整个页面并在顶部留下一个 space

Grid control can't cover the whole page and leaves a space at the top

我在 xaml:

中定义了一个默认的网格控件
<Page
    x:Class="App.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Grid>

    </Grid>
</Page>

而且这个网格不是从页面顶部开始的,如下图所示:

实现此目的的一种方法是像这样设置负边距:

<Page
    x:Class="App.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Grid Margin="0,-26.667,0,0">

    </Grid>
</Page>

所以它看起来像这张图片:

不过,我看过 Bob Tabor 的一些视频,例如 this one,他的所有默认控件都是从页面顶部开始的。

这里有什么问题,不设置负边距怎么解决?

嗯,状态栏默认是有的。 您有 2 个选择:

  1. 隐藏 -> Hide Status bar in Windows Phone 8.1 Universal Apps

  2. 将您的内容放在下面:

var applicationView = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView(); applicationView.SetDesiredBoundsMode(Windows.UI.ViewManagement.ApplicationViewBoundsMode.UseCoreWindow);

您可能希望阅读此内容以获取更多信息: http://blogs.msdn.com/b/amar/archive/2014/05/12/status-bar-in-windows-phone-8-1.aspx