如何让应用栏保持在底部,而不考虑屏幕分辨率

本文关键字:底部 不考虑 分辨率 屏幕 应用 | 更新日期: 2023-09-27 18:33:02

我正在用 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>

对不起,如果有人问这个问题。只是我已经四处寻找了很长时间,找不到任何可以帮助我的东西。

谢谢

如何让应用栏保持在底部,而不考虑屏幕分辨率

你为什么不试试这个。这将在页面底部打开应用栏,而不考虑屏幕分辨率。

<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>

如果画布是必需的,那么您可以使用它设置宽度和高度

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

同时尝试实现大小更改事件

Window.Current.SizeChanged += OnWindowSizeChanged;

并在那里应用相同的内容