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

UWP应用能否实现可独立移动的悬浮窗口?

UWP 独立窗口实现方案

可以实现,UWP 原生支持创建完全脱离默认MainPage.xaml的独立窗口,可自由拖动到屏幕任意位置,和主窗口互相独立运行。

实现前提

你的项目目标 Windows 版本需至少为 Windows 10 1903(内部版本号 10.0.18362.0),低于该版本可以改用AppWindowAPI 做兼容处理。

具体实现步骤

  • 第一步:新建一个自定义 XAML 页面作为独立窗口的内容载体,例如命名为CustomWindowPage.xaml,自行编写页面内的业务逻辑和UI
  • 第二步:在触发打开独立窗口的位置添加如下代码:
// 引入所需命名空间
using Windows.ApplicationModel.Core;
using Windows.UI.Core;
using Windows.UI.ViewManagement;
using Windows.UI.Xaml.Controls;

// 创建全新的独立应用视图
CoreApplicationView independentView = CoreApplication.CreateNewView();
int independentViewId = 0;

await independentView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
    Frame rootFrame = new Frame();
    // 直接关联你自定义的页面,完全不需要依赖MainPage
    rootFrame.Navigate(typeof(CustomWindowPage));
    Window.Current.Content = rootFrame;
    Window.Current.Activate();
    // 记录当前独立视图的ID
    independentViewId = ApplicationView.GetForCurrentView().Id;
});

// 将新视图作为独立窗口弹出
await ApplicationViewSwitcher.TryShowAsStandaloneAsync(independentViewId);

补充说明

  • 该方式创建的独立窗口和主窗口完全隔离,支持单独拖动、调整大小、最小化/最大化/关闭,操作主窗口不会影响独立窗口的状态
  • 可以通过ApplicationView.GetForCurrentView()的相关属性自定义独立窗口的标题、最小/最大尺寸、标题栏样式等参数
  • 如果需要处理窗口之间的通信,可以通过静态变量、消息订阅等方式实现跨视图数据传递

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:09:03