Maui8 多窗口桌面应用only for windows

fsdfsfd 280 信誉分
2025-01-06T15:19:31.18+00:00

问题1:

使用maui创建window应用,怎么关闭标题栏,除了在MauiProgram.cs中通过builder外,能否在App,page等其他中,通过调用函数解决

例如:我想关闭第二个窗口的标题实现全屏模式

问题2:

创建第二个窗口的时候怎么获取主窗口的位置

例如:根据主窗口的位置,在其下方创建第二个窗口

问题3:

多窗口之间通过什么能够通讯

Windows
Windows
Microsoft 操作系统系列,可跨个人计算机、平板电脑、笔记本电脑、手机、物联网设备、独立混合现实头戴显示设备、大型协作屏幕和其他设备运行。
538 个问题
.NET
.NET
基于 .NET 软件框架的 Microsoft 技术。
87 个问题
.NET MAUI
.NET MAUI
一种 Microsoft 开源框架,用于构建跨移动设备、平板电脑、台式机的原生设备应用程序。
127 个问题
{count} 票

接受的答案
  1. Leon Lu (Shanghai Wicresoft Co,.Ltd.) 78,511 信誉分 Microsoft 供应商
    2025-01-08T07:28:07.61+00:00

    您好,

    设置全屏或者隐藏标题栏

    你可以在MauiProgram.cs中通过builder,设置全屏或者隐藏标题栏,关于正则表达式,你开了另外的链接,请跟随新的链接

    #if WINDOWS
                builder.ConfigureLifecycleEvents(events =>
                {
                    events.AddWindows(wndLifeCycleBuilder =>
                    {
                        wndLifeCycleBuilder.OnWindowCreated(window =>
                        {
                            window.ExtendsContentIntoTitleBar = false; /*This is important to prevent your app content extends into the title bar area.*/
                            IntPtr nativeWindowHandle = WinRT.Interop.WindowNative.GetWindowHandle(window);
                            WindowId win32WindowsId = Win32Interop.GetWindowIdFromWindow(nativeWindowHandle);
                            Microsoft.UI.Windowing.AppWindow winuiAppWindow = Microsoft.UI.Windowing.AppWindow.GetFromWindowId(win32WindowsId);
                            if(winuiAppWindow.Presenter is OverlappedPresenter p)
                            {
    //隐藏titlebar
                                p.SetBorderAndTitleBar(false, false);
    //设置全屏
                                winuiAppWindow.SetPresenter(AppWindowPresenterKind.FullScreen);
                            }
     
                        });
                    });
                });
    #endif
    

    同时,这些代码仅仅作用于windows 平台,使用的namespace 也需要条件编译进行包裹

    #if WINDOWS
    using Microsoft.Maui.LifecycleEvents;
    using Microsoft.UI;
    using Microsoft.UI.Windowing;
    
    #endif
    
    

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。