Xaml BottomAppBar有时位于页面内容的顶部

Xaml BottomAppBar有时位于页面内容的顶部,xaml,windows-phone-8.1,mvvm-light,Xaml,Windows Phone 8.1,Mvvm Light,我有一个WP8.1应用程序,整体结构非常简单。它附带了大量的绑定语句和行为(交互性),所以我不想发布整个内容,但这里是伪XAML的总体思想: <Grid> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <MapC

我有一个WP8.1应用程序,整体结构非常简单。它附带了大量的绑定语句和行为(交互性),所以我不想发布整个内容,但这里是伪XAML的总体思想:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <MapControl Grid.Row="0" />
    <ListBox Grid.Row="1" MaxHeight="300" />
</Grid>
<Page.BottomAppBar>
    <CommandBar>
        ...AppBarButtons go here
    </CommandBar>
</Page.BottomAppBar>

…这里有炸薯条
这一切都很好。地图占据了屏幕的大部分,下面列出了搜索结果(如果有)。但我的应用程序也会响应ms drive的请求,在这种情况下,我会从URI获取请求的地址,并将其添加到OnNavigatedTo中的搜索结果中。这就是问题所在

当从URI请求打开时,大约每四次就有一次,底部的应用程序栏位于页面内容的顶部而不是下方(参见第二个屏幕截图,您只能勉强辨认出应用程序栏上方所选列表项的蓝色)。如果我做了一些导致屏幕刷新的事情(比如用Placement=“Full”打开弹出按钮),问题就会消失,页面也会正常呈现

在我看来,这似乎是一个XAML错误,但我想不出解决的办法。我曾尝试在页面和应用程序栏的加载事件中处理URI请求(以确保在操作列表框的项目源之前完全绘制所有内容),但这不起作用。我还尝试将Page.BottomAppBar移动到布局的顶部,希望它能首先呈现出来,但这也不起作用

唯一有效的方法是大幅降低应用程序栏的复杂度,比如去掉所有绑定和行为,只有一个图标不起任何作用,这显然是不可行的,但似乎表明应用程序栏的渲染时间太长,页面布局混乱。有什么想法吗


编辑:我最终“修复”了这个问题,从命令栏按钮中删除了一个半复杂的弹出按钮,并使用了一个单独的视图。我猜命令栏初始化花费的时间太长了,所以UI的其他部分比屏幕上的要快

对不起,你是对的。我查看了我的地图应用程序,元素的顺序是
;繁忙指示器包含地图和其他控件的位置。在运行我的WP8应用程序时,appBar可以在展开时覆盖较低的显示控件;我相信这是一个手机的设计常数。我们采用的设计是允许用户将控件滑离appbar(但我不记得这本身就是一个bug,它不会像您一样影响我们)。因此,我建议将蓝色消息移动到屏幕上的其他位置。