0

我正在使用 C# 和 XAML 开发带有 Visual Studio 2011 Beta 的 Metro 风格应用程序。我想在我的页面底部显示一个 AppBar。根据一些消息来源,我将不得不在标签内编写 AppBar Control<Page.BottomAppBar>...</Page.BottomAppBar>标签。

但是在这样做的同时,XAML 页面上会生成一个错误,说:

页面无法识别 BottomAppBar。

请帮我解决一下这个。谢谢你。

4

2 回答 2

2

这是 BottomAppBar 的示例:

<Page.BottomAppBar>
    <AppBar x:Name="MyappBar" Padding="10,0,10,0"
            BorderThickness="0"
            Opened="AppBar_Opened" Closed="AppBar_Closed" >
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="50*"/>
                <ColumnDefinition Width="50*"/>
            </Grid.ColumnDefinitions>
            <StackPanel x:Name="LeftPanel" Orientation="Horizontal" Grid.Column="0" HorizontalAlignment="Left">
                <Button x:Name="btnEdit" Style="{StaticResource EditAppBarButtonStyle}"/>
                <Button x:Name="btnSave" Style="{StaticResource SaveAppBarButtonStyle}"/>
            </StackPanel>
            <StackPanel x:Name="RightPanel" Orientation="Horizontal" Grid.Column="1" HorizontalAlignment="Right">
                <Button x:Name="btnPhoto" Style="{StaticResource PhotoAppBarButtonStyle}" Click="CapturePhoto_Click" />
                <Button x:Name="btnHelp" Style="{StaticResource HelpAppBarButtonStyle}"/>
            </StackPanel>
        </Grid>
    </AppBar>
</Page.BottomAppBar>

尝试将其</Page.Resources>放在您的 xaml 文件中。请记住取消注释Common文件夹中StandardStyles.xaml中的按钮样式。

于 2012-12-15T12:20:38.547 回答
2

更新:尽管最初发布的方法在大多数情况下都有效,但不建议使用,因为 appbar 动画出现问题,命中测试......而是 Page.TopAppBar 和 Page.BottomAppBar 如http://social.msdn.microsoft.com/中所述应该使用论坛/en/winappswithcsharp/thread/1044f2fb-bc55-4391-ac82-02c5d5e75970

您只需将应用栏的垂直对齐设置为底部:

<AppBar Grid.Row="1" HorizontalContentAlignment="Stretch" Height="88"   VerticalContentAlignment="Stretch" VerticalAlignment="Bottom">
...
</Appbar>

另外确保 appbar 嵌入到屏幕底部的元素中。这意味着对于标准页面(具有 2 行的网格),应用栏必须嵌入到第二行(Grid.Row=1)。

最后一件事是您必须确保应用栏在 Z 顺序中位于最顶端。为此,您必须在 xaml 文件末尾添加底部 appbar。这意味着如果你有类似的东西:

<GridView Grid.Row="1">...</GridView>

您必须订购控制链接:

<GridView Grid.Row="1">...</GridView>
<AppBar Grid.Row="1">...</AppBar>
于 2012-04-12T16:31:17.083 回答