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

https://gitee.com/ryanruien/maui-title-handle-demo

https://learn.microsoft.com/zh-tw/windows/windows-app-sdk/api/winrt/microsoft.ui.windowing.overlappedpresenter?view=windows-app-sdk-1.2

https://www.yii666.com/blog/58702.html

解决方法
一开始,我是根据站长网站里提供的方法
链接: Maui学习之路(1)-Windows窗体设置.
虽然能正常根据里面操作了,但是我操作的时候可能是我操作的问题,老师实现不了,只把标题栏根下面的content融在一起,标题栏还是在那,而且我不好改颜色

加了站长微信,站长耐心的帮我找了大佬Chister.Wu的Demo,对照他的Demo终于是把这个问题解决了,现在总结下针对去掉原本标题栏

1.完美去掉标题栏,下面是代码,写在MauiProgram.cs里配置生命周期方法,具体的资料在上面的链接: Maui学习之路(1)-Windows窗体设置.里也有,但是看起来比较麻烦,直接看代码可能好理解一点


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();
文档更新时间: 2023-04-03 10:38   作者:admin