1

我正在用 c# 构建一个 Windows 8 应用程序,但我无法让应用程序栏停留在屏幕底部。

我正在 2560x1440 PC 显示器和 1366x768 Windows 表面上测试该程序。它非常适合(默认情况下)Windows Surface 设备,但显示在 PC 显示器的屏幕中间。

这是我所拥有的:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
     can.Height = user.screenHeight; //Can is a canvas, which is being drawn on to. 
     can.Width = user.screenWidth; //user class contains information about the current user of the program

     var resScale = Windows.Graphics.Display.DisplayProperties.ResolutionScale;           
}

我可以轻松设置画布,因为它覆盖了整个屏幕。但我不确定如何接近应用栏。我很惊讶没有一个属性会自动将栏标记到屏幕底部。

这是应用栏的 XAML:

<AppBar x:Name="mainBar" Canvas.Top="700" Width="1366" VerticalAlignment="Bottom">
    <Button Style="{StaticResource NewWindowAppBarButtonStyle}" Click="Button_Click_1" />
</AppBar>

抱歉,如果有人问过这个问题。只是我一直在寻找年龄,找不到任何可以帮助我的东西。

谢谢

4

2 回答 2

3

你为什么不试试这个。无论屏幕分辨率如何,这都会在页面底部打开应用栏。

<Page.BottomAppBar>
    <AppBar x:Name="mainBar" Padding="10,0,10,0" AutomationProperties.Name="Bottom App Bar" IsOpen="True">
         <Button Style="{StaticResource NewWindowAppBarButtonStyle}" Click="Button_Click_1" />
    </AppBar>
</Page.BottomAppBar>
于 2013-09-28T04:10:08.200 回答
0

如果画布是要求,那么您可以使用此设置宽度和高度

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    var bounds = Window.Current.Bounds;
    can.Height = bounds.Height;
    can.Width = bounds.Width;
}

也可以尝试实现 size changed 事件

Window.Current.SizeChanged += OnWindowSizeChanged;

并在那里应用同样的

于 2013-09-28T04:13:32.353 回答