ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

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

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

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();//全屏非全屏之间切换时,要刷新一下
    }
}

 

返回列表