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

如何将MAUI新建窗口设置为始终置顶

MAUI 实现浮动窗口始终置顶主窗口之上

MAUI支持多窗口功能,要让新建的浮动窗口始终显示在主窗口上方,需要针对不同平台做特定处理,以下是各平台的实现方案:

各平台置顶实现代码

Windows平台

通过获取WinUI窗口句柄,设置IsAlwaysOnTop属性实现置顶:

#if WINDOWS
using Microsoft.UI.Windowing;
using WinRT.Interop;

// 在调用OpenWindow后添加以下代码
var hwnd = WindowNative.GetWindowHandle(CurrentFloatingWindow);
var appWindow = AppWindow.GetFromWindowId(Win32Interop.GetWindowIdFromWindow(hwnd));
appWindow.IsAlwaysOnTop = true;
#endif

Android平台

需要获取Android窗口对象,添加AlwaysOnTop标记,同时注意申请权限:

#if ANDROID
using Android.Views;

// 打开窗口后执行以下代码
var androidWindow = CurrentFloatingWindow.Handler.PlatformView as Android.App.Window;
if (androidWindow != null)
{
    androidWindow.AddFlags(WindowManagerFlags.AlwaysOnTop);
}
#endif

注意:Android需要在AndroidManifest.xml中添加权限:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

并且需要在运行时动态请求该权限。

iOS平台

通过设置UIWindow的WindowLevel为高于普通窗口的级别来实现置顶:

#if IOS
using UIKit;

// 打开窗口后执行以下代码
var iosWindow = CurrentFloatingWindow.Handler.PlatformView as UIWindow;
if (iosWindow != null)
{
    iosWindow.WindowLevel = UIWindowLevel.Alert + 1; // 级别高于系统弹窗,确保置顶
}
#endif

用户原始窗口创建代码

Window CurrentFloatingWindow = new()
{
  Page = new NewPage();
};
Application.Current.OpenWindow(CurrentFloatingWindow);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 04:52:19