如何为面向 Windows 的 MAUI Blazor 应用程序设置窗口标题?

ola*_*ker 14 .net xaml blazor maui maui-blazor

我已经从 MAUI 预览版 10 中的 MAUI Blazor 应用程序模板创建了一个小型应用程序,并将其定位并在 Windows 上运行。然而,我希望设置应用程序的标题,我想象这将通过 MainPage.xaml ContentPage 标记中的 Title 属性来完成。然而,这在启动应用程序时没有任何作用。

在此输入图像描述

小智 28

public partial class MainApp : Application
{
    public MainApp()
    {
        InitializeComponent();

        MainPage = new MainPage();
    }

    protected override Window CreateWindow(IActivationState activationState)
    {
        var window = base.CreateWindow(activationState);
        if (window != null)
        {
            window.Title = "YOUR WINDOW TITLE";
        }

        return window;
    }
}
Run Code Online (Sandbox Code Playgroud)


ME *_*URA 7

在 Platforms -> Windows 下的 App.xaml.cs 中,可以通过一些反射用法来检索 AppWindow。然后可以在 appwindow 实例上设置 Title 属性。

using Microsoft.UI;
using Microsoft.UI.Windowing;
using System;
using WinRT.Interop;
.
.
.
    protected override void OnLaunched(LaunchActivatedEventArgs args)
        {
            base.OnLaunched(args);

            Microsoft.Maui.Essentials.Platform.OnLaunched(args);

            var currentWindow = Application.Windows[0].Handler.NativeView;
            IntPtr _windowHandle = WindowNative.GetWindowHandle(currentWindow);
            var windowId = Win32Interop.GetWindowIdFromWindow(_windowHandle);

            AppWindow appWindow = AppWindow.GetFromWindowId(windowId);
            appWindow.Title = "Title!";
        }
Run Code Online (Sandbox Code Playgroud)

  • 在最新的 maui RC 更新中,您需要从“Application.Windows[0].Handler.NativeView”调整为“Application.Windows[0]?.Handler?.PlatformView;” (3认同)