You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现UWP应用启动时定位到屏幕左下角(任务栏上方)?

UWP主窗口启动时定位到屏幕左下角任务栏上方的解决方案

核心思路

主窗口并非无法获取AppWindow实例——从Windows 10 1903(内部版本18362)开始,可通过窗口ID直接关联主窗口的AppWindow对象,之后就能用和辅助视图一致的方法完成位置与大小调整。

实现步骤与代码示例

  1. 获取主窗口的AppWindow实例
    在应用启动逻辑(如App.xaml.cs的OnLaunched方法)或主页面的Loaded事件中,通过当前核心窗口的ID获取对应的AppWindow:

    var coreWindow = Window.Current.CoreWindow;
    var mainAppWindow = AppWindow.GetFromWindowId(coreWindow.WindowId);
    
  2. 计算目标位置与大小
    获取当前显示器的有效显示区域(自动排除任务栏等系统UI),再根据需求计算窗口的左下角位置:

    // 获取当前视图的可见边界(已排除任务栏)
    var appView = ApplicationView.GetForCurrentView();
    var visibleBounds = appView.VisibleBounds;
    
    // 自定义窗口尺寸(可根据需求调整,模仿开始菜单的大小)
    double targetWidth = 320;
    double targetHeight = 600;
    
    // 计算左下角坐标:X为显示区域左边界,Y为显示区域底部减去窗口高度
    double targetX = visibleBounds.Left;
    double targetY = visibleBounds.Bottom - targetHeight;
    
  3. 调整窗口大小与位置
    调用AppWindow的异步方法完成尺寸调整与位置移动:

    // 先调整窗口大小
    await mainAppWindow.RequestSizeAsync(new Size(targetWidth, targetHeight));
    // 再移动到目标位置
    await mainAppWindow.RequestMoveAsync(new Point(targetX, targetY));
    

注意事项

  • 该方案仅支持Windows 10 1903及更高版本的系统;
  • 若需适配多显示器场景,可通过DisplayRegion类获取对应显示器的有效区域,确保窗口定位在当前活动显示器的左下角;
  • 建议将上述逻辑放在应用启动后的窗口激活阶段执行,避免因窗口未初始化导致的异常。

内容的提问来源于stack exchange,提问作者Muhammad Touseef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 11:09:17