MAUI Blazor (Windows) App 动态设置窗口标题

news2024/11/16 7:35:27

原文链接 https://www.cnblogs.com/densen2014/p/16950996.html

接着上一篇"如何为面向 Windows 的 MAUI Blazor 应用程序设置窗口标题?"

Tips: 总所周知,MAUI 除了 Windows App 其他平台窗口是没有 Title 这回事的.

在 Blazor 里面可以直接给页面打上 <PageTitle>MauiApp7test</PageTitle> 动态设置页面标题,在 Windows 的 MAUI Blazor 应用程序设置是没有效果的,因为这个只是设置了 BlazorWebView 控件的标题,并不是真正的窗口标题, 接着上一篇的知识改造一下动态设置标题:

工程文件 Platforms -> Windows -> App.xaml.cs
using Microsoft.UI;
using Microsoft.UI.Windowing;
using Microsoft.UI.Xaml;
using WinRT.Interop;
...
namespace MauiApp7test.WinUI
{
    public partial class App : MauiWinUIApplication
    {
        public static object CurrentWindow;
        public static AppWindow AppWindow;

        protected override void OnLaunched(LaunchActivatedEventArgs args)
        {
            base.OnLaunched(args);

            CurrentWindow = Application.Windows[0].Handler?.PlatformView;
            IntPtr _windowHandle = WindowNative.GetWindowHandle(CurrentWindow);
            var windowId = Win32Interop.GetWindowIdFromWindow(_windowHandle);
            AppWindow = AppWindow.GetFromWindowId(windowId);
            
            SetTitle("MauiApp7test");
        }

        public static void SetTitle(string title) => AppWindow.Title = title;

        protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
    }
}

页面文件 Pages ->PagesIndex.razor

@code {
    protected override void OnAfterRender(bool firstRender)
    {
        if (firstRender)
        {
#if WINDOWS
            WinUI.App.SetTitle("MauiApp7test - Index");
#endif 
        }
    }
}

页面文件 FetchData.razor

@code {
    private WeatherForecast[] forecasts;

    protected override async Task OnInitializedAsync()
    {
#if WINDOWS
        WinUI.App.SetTitle("MauiApp7test - Fetchdata");
#endif
        forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
    }
}

运行效果

总结

MAUI 还是一个新鲜事物,在官方还没支持的一些骚操作的情况下多发散思维,总能填坑的.

标题设置这里只是写了个方法去设置,也可以写成接口各平台实现,注入服务方式调用,理论上会更加通用一点.

项目源码

Github | Gitee

知识共享许可协议

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名AlexChow(包含链接: https://github.com/densen2014 ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系 。

AlexChow

今日头条 | 博客园 | 知乎 | Gitee | GitHub

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/61261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

时间轴-新年倒计时(实操java)

文章目录一、前言二、前端代码实现1、效果图年月日倒计时秒杀1天倒计时秒杀60秒倒计时2、代码实操&#xff08;微信小程序前端&#xff09;①在utils文件夹下新建js文件&#xff1a;getperiod.js工具类②引入js&#xff0c;在页面index.js开头引入③完整代码3、倒计时实现①1天…

学习python第一天(数据类型)

关于Python的数据类型 Python数据类型包括&#xff1a; 数字类型&#xff0c;字符类型&#xff0c;布尔类型&#xff0c;空类型&#xff0c;列表类型&#xff0c;元组类型&#xff0c;字典类型 1、数字类型 包括&#xff1a;整型int 浮点型float(有小数位的都是是浮点型) 注…

自己写Spring组件-01手写Bean注册器

简介 在进行web开发的时候&#xff0c;我们经常使用Component、Services、Controller等注解去声明Bean&#xff0c;然后Spring就会帮我们注册。 如果我们想要自己写一个组件&#xff08;方便后期使用&#xff09;&#xff0c;进行无感引入的时候&#xff0c;就需要自己去注册B…

【计算机网络】计算机网络复习总结 ----- 链路层

计算机网络 内容管理数据链路层 Data Link Layer相关概念术语link 链路data link 数据链路帧 frameMTU maximum transfer Unit 最大传送单元PPP point to point Protcol 点对点协议MAC 地址 media access control网桥 bridge交换机 switch成帧 规则成帧定界字符计数法字符填充分…

QT:文件介绍

UI&#xff1a;QT程序中使用的ui界面就保存在该文件中 组件 设置当前组件的属性 点谁显示谁的属性 调整最终页面的布局&#xff0c;使组件控件在水平或对齐 调整因页面放大缩小时&#xff0c;控件与控件之间的水平和垂直间距 各种各样的按钮 图像显示有关的视图 列表框 各…

Gradle学习笔记之Groovy简单使用

简介 groovy可以当成java的脚本化改良版&#xff0c;同样运行于JVM之上&#xff0c;可以很好地和java代码及相关库进行交互&#xff0c;既可以面向对象编程&#xff0c;也可以用作纯粹的脚本语言。Groovy支持动态类型转换、闭包、元编程、函数式编程、默认作用域为public&…

ArcGIS基础:使用线段分割面数据操作

本操作主要是实现线要素对面要素的分割。 先看一下原始数据&#xff0c;如下所示&#xff0c;2个面&#xff0c;1条线&#xff0c;面被线贯穿过去。 首先进行【面转线】操作&#xff0c;以提取面要素的边界线&#xff0c;如下所示 提取结果如下所示&#xff1a; 然后进行【…

java认证与证书

本文内容主要来自《Java加密与解密的艺术》 目前主要有JKS和PEM两种编码格式文件。 JKS&#xff08;Java Key Store&#xff09;&#xff0c;Java原生的密钥库/信任库文件。**PEM&#xff08;Privacy Enbanced Mail&#xff0c;隐私增强邮件&#xff09;**是使用多种加密方法提…

2022-12-04一周学习

这周基本上还是在对前端学习的更多一点&#xff0c;主要是之前没有重视vue3的学习,现在在补上来&#xff0c;学习了vue3的一些知识&#xff0c;前端的权限管理&#xff0c;设置路由守卫&#xff0c;pinia&#xff0c;还学习了redis的一些基本操作&#xff0c;之前只是照搬了别人…

Linux的线程创建

对于任何一个进程来讲&#xff0c;即便我们没有主动去创建线程&#xff0c;进程也是默认有一个主线程的。线程是负责执行二进制指令的&#xff0c;它会根据项目执行计划书&#xff0c;一行一行执行下去。进程要比线程管的宽多了&#xff0c;除了执行指令之外&#xff0c;内存、…

二、演练领域驱动的设计过程

一、业务分析&#xff1a;统一语言与事件风暴 1、统一语言&#xff1a; 客户明白自己的领域知识也就是业务&#xff0c;以及自己需要解决的问题&#xff0c;也叫做痛点&#xff0c;但是不知道技术。技术人员知道技术&#xff0c;但是不了解客户的业务。所以两者交流起来往往会…

[附源码]计算机毕业设计物品捎带系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

finereport公式帮助

1 if(inarray($$$,ds1.select(销售员))<$TOPN,$$$,"其他")&#xff0c;将第 N 个销售员之后的所有销售员合并为其他&#xff0c; 2 "["((roundup($$$/$num)-1)*$num1)"~"(roundup($$$/$num)*$num)"]" 3 SQL语句用if语句&#xff0c…

HTML网页设计作业:文化网站设计——基于HTML古典中国风工艺美术网页设计(9页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

SpringBoot @InitBinder注解绑定请求参数

参考资料 springMVC之InitBinder 和 ValidatorspringMVC之InitBinder的用法1springMVC之InitBinder的用法2 目录一. 作用二. 前期准备三. Get请求 URL传值处理3.1 前台-test16.html3.2 Controller层3.3 效果四. Post请求 表单传值 自定义日期属性绑定器4.1 前台-test16.htm…

华为机试 - 任务最优调度

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 给定一个正整数数组表示待系统执行的任务列表&#xff0c;数组的每一个元素代表一个任务&#xff0c;元素的值表示该任务的类型。 请计算执行完所有任务所需的最短时间。 任务执行规则如下: 任务可…

Springboot RabbitMq源码解析之RabbitListener注解 (四)

文章目录1.RabbitListener注解介绍2.EnableRabbit和RabbitBootstrapConfiguration3.RabbitListenerAnnotationBeanPostProcessor4.对RabbitListener注解的解析5.RabbitListenerEndpointRegistrar1.RabbitListener注解介绍 RabbitListener是Springboot RabbitMq中经常用到的一个…

D-023 DVI硬件电路设计

DVI硬件电路设计1 简介1.1 连接器1.2 接口信号定义1.3 DVI的分类1.4 DVI规格2 硬件设计实战3 硬件设计要点3.1 注意事项3.2 补充说明3.3 VGA 和 DVI 优缺点1 简介 DVI(Digital Visual Interface)是一种数字视频接口&#xff0c;它是基于TMDS (Transition Minimized Differenti…

MFC列表控件的用法(基于对话框的编程)

目录 一、List Control列表控件属性 1.List Control 2.View属性 二、OnInitDialog初始化列表 1.创建List Control的变量 2.找OnInitDialog ​3. InsertColumn插入表头 4. InsertColumn设置对齐方式和列宽 5. 设置List的正文内容 ​6.循环结构创建列表 7.设置列表整行…

Windows内核--子系统(3.5)

到底什么是子系统? 子系统是用户层概念。在Windows内核之上&#xff0c;如果想要执行类UNIX应用程序&#xff0c;就是POSIX子系统&#xff0c;如果要类似OS/2环境&#xff0c;就是OS/2子系统。 如何能模拟出不同子系统呢? 一般需要子系统用户态应用程序和相关DLL支援。 对于W…