Как полностью скрыть строку заголовка в приложении .NET MAUI в Windows, сохранив при этом возможность изменения размера?C#

Место общения программистов C#
Anonymous
Как полностью скрыть строку заголовка в приложении .NET MAUI в Windows, сохранив при этом возможность изменения размера?

Сообщение Anonymous »

Я разрабатываю гибридное приложение .NET MAUI Blazor для Windows и хочу полностью скрыть строку заголовка по умолчанию, сохранив при этом возможность изменения размера окна. Для этого я попытался изменить файл MauiProgram.cs.
Я добавил следующий код в MauiProgram.cs:

Код: Выделить всё

#if WINDOWS
builder.ConfigureLifecycleEvents((events) =>
{
events.AddWindows(wndLifeCycleBuilder =>
{
wndLifeCycleBuilder.OnWindowCreated((w) =>
{
IntPtr nativeWindowHandle = WinRT.Interop.WindowNative.GetWindowHandle(w);
WindowId win32WindowsId = Win32Interop.GetWindowIdFromWindow(nativeWindowHandle);
AppWindow winuiAppWindow = AppWindow.GetFromWindowId(win32WindowsId);
if (winuiAppWindow.Presenter is OverlappedPresenter p)
{
p.IsResizable = true;
p.SetBorderAndTitleBar(false, false);
}
});
});
});
#endif
С помощью этого кода строка заголовка скрыта, но вверху все еще остается пустое пространство.
Изображение

Когда я обновил код до:

Код: Выделить всё

#if WINDOWS
builder.ConfigureLifecycleEvents((events) =>
{
events.AddWindows(wndLifeCycleBuilder =>
{
wndLifeCycleBuilder.OnWindowCreated((w) =>
{
IntPtr nativeWindowHandle = WinRT.Interop.WindowNative.GetWindowHandle(w);
WindowId win32WindowsId = Win32Interop.GetWindowIdFromWindow(nativeWindowHandle);
AppWindow winuiAppWindow = AppWindow.GetFromWindowId(win32WindowsId);
if (winuiAppWindow.Presenter is OverlappedPresenter p)
{
p.IsResizable = false;
p.SetBorderAndTitleBar(false, false);
}
});
});
});
#endif
Пробелы удалены, но размер приложения больше нельзя изменить. Мне нужно полностью скрыть строку заголовка и при этом разрешить изменение размера окна.

Подробнее здесь: https://stackoverflow.com/questions/787 ... dows-while

Вернуться в «C#»