WinFormedge 增加登录页面(自定义布局,非左右布局) 并作为启动页面 及两种布局切换全屏非全屏

news/2025/11/27 23:54:43/文章来源:https://www.cnblogs.com/wishit/p/19279796

WinFormedge  增加登录页面(自定义布局,非左右布局)并作为启动页面的实现方法

1、增加一个自定义布局(Components/Layout下新建EmptyLayout.razor布局文件)

代码如下:
@inherits LayoutComponentBase@Body
<FluentToastProvider />

2、登录页面代码

@page "/"为启动页,@layout EmptyLayout采用自定义布局

@page "/"@layout EmptyLayout<div><FluentButton app-command="close" >退出</FluentButton><FluentSpacer Width="50" /><FluentButton OnClick="login">登录</FluentButton>
</div>@code {private void login(){try{navigationManager.NavigateTo("/home");navigationManager.Refresh();//全屏非全屏之间切换时,要刷新一下
        }catch (Exception ex){ToastService.ShowWarning("数据库连接错误!", 3000);}}}

3、MainWindow.cs的相关代码

    public MainWindow(){Icon = new System.Drawing.Icon(new MemoryStream(Properties.Resources.WinFormiumBlazor));Url = "https://blazorapp.local/";Load += MainWindow_Load;//dom加载的时候执行的方法,以下两个方法均可//DOMContentLoaded += MainWindow_DOMContentLoaded;DOMContentLoaded += OnDOMContentLoaded;//窗体位置,屏幕中心StartPosition = FormStartPosition.CenterParent;//BackColor = System.Drawing.Color.Transparent;//窗体背景透明//WindowTitle = "FluentUI Blazor00000";
}private void MainWindow_DOMContentLoaded(object? sender, Microsoft.Web.WebView2.Core.CoreWebView2DOMContentLoadedEventArgs e){if (CoreWebView2 != null){if(CoreWebView2.Source.Equals("https://blazorapp.local/")){WindowState = FormWindowState.Normal;} else{WindowState = FormWindowState.Maximized;}}}private void OnDOMContentLoaded(object? sender, Microsoft.Web.WebView2.Core.CoreWebView2DOMContentLoadedEventArgs e){if (CoreWebView2 != null){//根据路由判断启动页面,根路由为启动页面,否则为其他页面//注意全屏和非全屏之间切换时要调用 navigationManager.Refresh()方法,详见login.razor及MainLayout.razorif (CoreWebView2.Source.Equals("https://blazorapp.local/")){//将启动(登录)页面设为非全屏WindowState = FormWindowState.Normal;}else{//将其他页面设为全屏,WindowState = FormWindowState.Maximized;}}}

4、左右布局 MainLayout.razor 的代码如下:

<div class="toolbox" title="退出登录" @onclick="logout"></div>@code{private void logout(){navigationManager.NavigateTo("/");navigationManager.Refresh();//全屏非全屏之间切换时,要刷新一下
    }
}

 

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

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

相关文章

2025.11.27总结

完成儿童故事的项目 完成CS架构的项目 目前bs架构的方向还没定,不过我打算在设计上就搞好这个项目,我认为只要能设计好,从目的,数据库设计,方法接口设计。清晰的将模块拆分,功能罗列出来。 这样在编码阶段才能有…

第6单元检测卷

好的,这是根据您提供的第三份PDF文档(第6单元检测卷)内容提取的题目、答案和解析,已按题型分类,并以Markdown格式呈现。第6单元检测卷 - 题目、答案与解析 一、单项选择题题目:关于数据库存储描述正确的是 ( )A.…

第7单元检查卷

单元检测卷题目与答案解析 一、单项选择题题目:在批量重命名活动照片项目中,读取CSV报名表时需跳过标题行,应使用的函数是 ( )A. csv.skip() B. next(reader) C. reader.skip() D. csv.reader(skipheader=True)答案…

2025 美本申请 SAT 高分指南:全国 TOP6培训机构甄选,从课程到服务全维度测评

2025 年美本、加本及新加坡本科申请已进入白热化阶段,SAT 作为院校筛选的核心硬指标,直接决定学子能否在万级竞争者中突围。尤其 SAT 机考改革后,题型迭代、备考周期压缩,再加上市场上机构良莠不齐 —— 部分宣称 …

2025 年江苏有机农场推荐榜:德芳有机农场全品类覆盖、国家权威有机认证

随着消费者对食品安全和健康生活方式的日益重视,有机农产品市场需求持续井喷,尤其是在经济发达的长三角地区,对高品质、可追溯的有机食材的需求达到了新的高度。2025 年,江苏省内有机农场数量不断增加,但真正具备…

题解:P5518 [MtOI2019] 幽灵乐团 / 莫比乌斯反演基础练习题

绝对是基础练习题哈!推式子不是世界上最快乐的事情嘛。题目大意:在 \(p\) 分别定义为 \(1\)、\(ijk\)、\(\gcd(i,j,k)\) 下求 \(\displaystyle \prod_{i=1}^{A}\prod_{j=1}^{B}\prod_{k=1}^{C}\left ( \frac{\text{l…

S7-1200 PROFINET与 IO device 通信

文章来源:S7-1200withIO_device重要标记: 1.首先要收1200和分布式IO的实物。 2.配置IP后,界面连接后,分配名称重新下载即可。PROFINET IO 设备指分配给一个或多个 IO 控制器的分布式现场设备(例如,远程 IO、阀岛…

Arista EOS平台安全漏洞分析与修复指南

荷兰国家网络安全中心发布Arista EOS平台安全公告,详细分析输入验证不当、权限管理缺陷等漏洞,这些漏洞可导致系统崩溃、拒绝服务攻击,并提供相应的修复方案和参考信息。安全公告 NCSC-2025-0374 [1.0.0] 发布日期:…

牺牲从不理所应当

……今天和很多人讨论流浪狗的处理问题,有些意难平。有个大嘴巴说出了一个观点,仿照美国的捕杀制度,无差别的捕捉流浪狗到收容所,限期没人领取就直接安乐死,对养狗人士严加管理,防止因遗弃造成的再流浪情况。我完…

干货|2025NCUK机构择优指南:官方授权中心排名对比+教学体系深度解析

NCUK成立于1987年,总部设在曼彻斯特,是由英国16所著名大学共同创办的联盟组织,其中包括布里斯托大学、伯明翰大学、利兹大学、曼彻斯特大学、谢菲尔德大学、利物浦大学、阿斯顿大学、伦敦大学玛丽皇后学院等知名大学…

第四十一天

于细节之处,窥见编程智慧 重读《代码大全二》,我对“编程是一门技艺,更是一门艺术”有了更深的理解。书中对代码细节的极致追求,让我意识到优秀的代码往往藏在被忽视的角落。例如在数据库操作模块开发中,我曾为了…

第四十二天

跳出编码本身,拥抱工程思维 《代码大全二》最打动我的,是它跳出了“编码”本身,将视角提升到了软件工程的全局高度。作为一名正在学习算法、数据库与框架开发的学生,我曾陷入“重技术实现,轻工程管理”的误区,认…

第四十天

以规范之力,筑牢代码根基 《代码大全二》绝非一本单纯的“语法手册”,而是软件开发领域的“工程圣经”。初读时,我曾误以为书中的规范要求过于严苛——比如变量命名的长度限制、代码注释的详细程度、函数拆分的粒度…

python的日志使用装饰器,记录的日志文件记录

python的日志使用装饰器 log.pyimport logging from functools import wraps import os# --- 1. 日志配置(创建日志文件) --- LOG_FILENAME = function_calls.log# 确保在开始时清除旧日志文件,便于演示 if os.path…

一文入门 LangGraph 开发

注意: 本博客/笔记并不适合新手, 适合有一定的开发经验, 快速上手开发的老油条. 2024-05-22 LangGraph [N_LangChain] [[N_LangServe]] git langgraph 项目页 官页 - overview 官页 - 教程 LangGraph is a library for…

Real people are important.

we are not politicians, we dont need to hide some truth in the Internet, and spread some can not be touched.

【pandas基础】用Pandas处理泰坦尼克号获救数据

Python数据分析实战:用Pandas处理泰坦尼克号获救数据 准备工作 在开始数据分析前,需导入Pandas和NumPy库并设置别名(行业通用规范,简化代码书写): import pandas as pd # 数据处理核心库,别名为pd import nump…

Scrum冲刺阶段 Day Four

一、站立会议纪要 1. 已完成工作实现文件列表查询接口 开发文件上传组件 编写核心功能测试用例 实现全局异常处理 封装请求拦截器2. 今日计划工作 开发文件列表页面 文件界面 管理员登录 + 用户管理页 实现启用/禁用用…

Day26光标类型cursor

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">…