weixin_42539726 2023-04-26 22:36 采纳率: 0%
浏览 56
已结题

MAUI windows 隐藏标题栏

请问,MAUI windows 可以完美隐藏标题栏吗?不修改应用生命周期的情况下完成

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-04-26 22:45
    关注
    var builder = MauiApp.CreateBuilder();
    builder.UseMauiApp<App>()
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
            })
            .ConfigureLifecycleEvents(events =>
             {
    
    #if WINDOWS
            events.AddWindows(windows => windows
            .OnWindowCreated(window =>
                          {
                              //window.SizeChanged += OnSizeChanged;
                              MauiWinUIWindow mauiwin = window as MauiWinUIWindow;
                              if (mauiwin == null) { return; }
                              
                              //关闭扩展内容
                              mauiwin.ExtendsContentIntoTitleBar = false;
                              mauiwin.Title = "Hello Maui";
                              
                              
                              通过maui窗口句柄获取appwindow---
                              ///这里有个操蛋的东西我用最新版新建的工程没法直接getappwindow所以用了文章里的方法
                              var wndId = Microsoft.UI.Win32Interop.GetWindowIdFromWindow(mauiwin.WindowHandle);
                              Microsoft.UI.Windowing.AppWindow appwin = Microsoft.UI.Windowing.AppWindow.GetFromWindowId(wndId);
    
                              //对于OverlappedPresenter的解释文档在这个网址
                              //https://learn.microsoft.com/zh-tw/windows/windows-app-sdk/api/winrt/microsoft.ui.windowing.overlappedpresenter?view=windows-app-sdk-1.2
                              
                              //大致就是OverlappedPresenter会设置这个窗口,这个窗口可以和其他窗口重叠,并对窗口标题栏 状态栏 工作栏进行设置,以及其他一些调整窗口的操作
                              var customOverlappedPresenter = Microsoft.UI.Windowing.OverlappedPresenter.CreateForContextMenu();
                              appwin.SetPresenter(customOverlappedPresenter);
                          }));    
    #endif
                });
    
            return builder.Build();
    
    
    

    https://blog.csdn.net/Sir_aligaduo/article/details/128880940

    评论

报告相同问题?

问题事件

  • 系统已结题 5月4日
  • 创建了问题 4月26日