当前位置: 首页 > news >正文

在wpf中登录成功之后怎么设置主页布局及点击不同的菜单跳转到不同的页面,这个是我们做wpf项目必要会的一个功能

通过frame与page实现在mvvm下的页面跳转

在wpf中登录成功之后怎么设置主页布局及点击不同的菜单跳转到不同的页面_哔哩哔哩_bilibili

1、MainWindow代码
 <DockPanel><StackPanel DockPanel.Dock="Top" Height="40"><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="1.5*"></ColumnDefinition><ColumnDefinition Width="0.5*"></ColumnDefinition><ColumnDefinition Width="0.5*"></ColumnDefinition></Grid.ColumnDefinitions><TextBlock Text="AGV调度管理系统" FontSize="25" Grid.Column="0" ></TextBlock><TextBlock Text="欢迎您:" FontSize="20" Grid.Column="1"  HorizontalAlignment="Right"></TextBlock><TextBlock Text="{Binding  UserName, Mode=OneWay}" FontSize="20" Grid.Column="2" HorizontalAlignment="Left" Foreground="Red" ></TextBlock></Grid></StackPanel><BorderWidth="100"Margin="0,0,10,0"Panel.ZIndex="1"Background="#2f3336"BorderBrush="#1d2125"BorderThickness="3"DockPanel.Dock="Left"><StackPanel Margin="0,0,10,0" Orientation="Vertical"><Border BorderBrush="#3c5254" BorderThickness="3"><ButtonMargin="0,2"HorizontalAlignment="Stretch"Background="#2f3336"Command="{Binding HomeCmd}"Content="主页"Cursor="Hand"Foreground="White" /></Border>
​<Border BorderBrush="#3c5254" BorderThickness="3"><ButtonMargin="0,3"HorizontalAlignment="Stretch"Background="#2f3366"Command="{Binding NavView}"CommandParameter="task"Content="任务"Cursor="Hand"Foreground="White" /></Border>
​<Border BorderBrush="#3c5254" BorderThickness="3"><ButtonMargin="0,3"HorizontalAlignment="Stretch"Background="#2f3366"Command="{Binding NavView}"CommandParameter="queue"Content="队列"Cursor="Hand"Foreground="White" /></Border></StackPanel></Border><Grid><Frame Name="MainFrame" NavigationUIVisibility="Hidden" Grid.Row="1"/></Grid></DockPanel>
2、创建一个TaskPage的页。

a、首先在项目下创建一个Pages的文件夹。

b、添加一个页文件,命名为TaskPage.html

c、选择添加页。

在这个页面上添加三个页面,我们后面会在项目中用到

3、在ViewModels下的MainWindowViewModel中添加如下代码,为每个页面定义导航命令。

​public class MainWindowViewModel : INotifyPropertyChanged{private Frame _frame;public event PropertyChangedEventHandler PropertyChanged;
​public MainWindowViewModel(Frame frame) {_frame = frame;}/// <summary>/// 跳转到TaskPage/// </summary>private ICommand _navigateToTaskPageCommand;
​public ICommand NavigateToTaskPageCommand{get{return _navigateToTaskPageCommand ?? new RelayCommand(param => NavigateToTaskPage());}}/// <summary>/// 跳转到QueuePage/// </summary>private ICommand _navigateToQueuePageCommand;
​public ICommand NavigateToQueuePageCommand{get{return _navigateToQueuePageCommand ?? new RelayCommand(param => NavigateToQueuePage());}}
​protected void OnPropertyChanged(string propertyName){PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}
​private void NavigateToTaskPage(){_frame.Navigate(new Uri("Pages/TaskPage.xaml",UriKind.Relative));}
​private void NavigateToQueuePage(){_frame.Navigate(new Uri("Pages/QueuePage.xaml", UriKind.Relative));}
​
​
​/// <summary>/// 登录之后用户名/// </summary>public string? UserName{get{return UserInfoService.USER_NAME;}
​}}
}

4、在MainWindows文件的Cs文件里修改代码如下:

​/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();DataContext = new MainWindowViewModel(this.MainFrame);this.Loaded += MainWindow_Loaded;​}
​private void MainWindow_Loaded(object sender, RoutedEventArgs e){MainFrame.Navigate(new Uri("Pages/MainPage.xaml", UriKind.Relative));}}
一个小作业

[!IMPORTANT]

如果有很多窗体,也要一个一个这样写吗?可以使用参数来处理。大家可以自己写一下。

相关文章:

在wpf中登录成功之后怎么设置主页布局及点击不同的菜单跳转到不同的页面,这个是我们做wpf项目必要会的一个功能

通过frame与page实现在mvvm下的页面跳转 在wpf中登录成功之后怎么设置主页布局及点击不同的菜单跳转到不同的页面_哔哩哔哩_bilibili 1、MainWindow代码 <DockPanel><StackPanel DockPanel.Dock"Top" Height"40"><Grid><Grid.ColumnD…...

基于opencv的人脸闭眼识别疲劳监测

1. 项目简介 本项目旨在实现基于眼部特征的眨眼检测&#xff0c;通过监测眼睛开闭状态来计算眨眼次数&#xff0c;从而应用于疲劳监测、注意力检测等场景。使用了面部特征点检测算法&#xff0c;以及眼部特征比率&#xff08;EAR, Eye Aspect Ratio&#xff09;来判断眼睛的闭…...

aeo认证需要什么材料

AEO&#xff08;Authorized Economic Operator&#xff09;认证&#xff0c;即经认证的经营者认证&#xff0c;是企业信用管理体系的一种高级认证。申请AEO认证时&#xff0c;企业需要准备一系列的材料以证明其符合认证标准。以下是一份详细的AEO认证申请材料清单&#xff1a; …...

【iOS】YYModel

目录 什么是YYModel &#xff1f; 如何使用YYModel &#xff1f; 最简单的Model 与网络请求结合 属性为容器类的Model 白名单和黑名单 Model的嵌套 结语 什么是YYModel &#xff1f; YYModel是一个用于 iOS 和 macOS 开发的高性能的模型框架&#xff0c;主要用于对象和…...

Cadence元件A属性和B属性相互覆盖

最近在使用第三方插件集成到Cadence,协助导出BOM到平台上&#xff0c;方便对BOM进行管理和修改&#xff0c;结果因为属性A和属性B不相同&#xff0c;导致导出的BOM错误。如下图&#xff1a; ​​ 本来我们需要导出Q12&#xff0c;结果给我们导出了Q13&#xff0c;或者反之&…...

【火山引擎】语音合成 | HTTP接口 | 一次性合成 | python

目录 一 准备工作 二 HTTP接口(一次性合成-非流式) 1 接口说明 2 身份认证 3 请求方式 三 实践 四 注意事项 火山引擎语音合成TTS(Text-to-Speech)是一种基于云计算的语音合成服务,可以将文本转化为自然、流畅的语音。以下是火山引擎TTS的主要功能和特点: ①多种语音…...

YOLOv11改进-卷积-空间和通道重构卷积SCConv

本篇文章将介绍一个新的改进模块——SCConv&#xff08;小波空间和通道重构卷积&#xff09;&#xff0c;并阐述如何将其应用于YOLOv11中&#xff0c;显著提升模型性能。为了减少YOLOv11模型的空间和通道维度上的冗余&#xff0c;我们引入空间和通道重构卷积。首先&#xff0c;…...

记录一次从nacos配置信息泄露到redis写计划任务接管主机

经典c段打点开局。使用dddd做快速的打点发现某系统存在nacos权限绕过 有点怀疑是蜜罐&#xff0c;毕竟nacos这实在是有点经典 nacos利用 老规矩见面先上nacos利用工具打一波看看什么情况 弱口令nacos以及未授权访问&#xff0c;看这记录估计被光顾挺多次了啊 手动利用Nacos-…...

Unity加载界面制作

效果 UI部分 结构 说下思路: 因为是加载界面,所以最上层是一个Panel阻止所有的UI交互,这个Panel如果有图片就加一个图片,如果没有可以把透明度调到最大,颜色设为黑色. 下面最核心的就是一个进度条了,有图片的话,将进度条的底放进来,将进度条锚点设为下中,将滑动块的尺寸设为0.…...

最好的ppt模板网站是哪个?做PPT不可错过的18个网站!

现在有很多PPT模板网站&#xff0c;但真正免费且高质量的不多&#xff0c;今天我就分享主流的国内外PPT模板下载网站&#xff0c;并且会详细分析这些网站的优缺点&#xff0c;这些网站都是基于个人实际使用经验的&#xff0c;免费站点会特别标注&#xff0c;让你可以放心下载&a…...

煤矿安全监测监控作业题库

第一部分 安全法律法规知识子题库 单选题 1.《安全生产法》规定&#xff0c;生产经营单位应当向从业人员如实告知作业场所和工作岗位存在的(A)、防范措施以及事故应急措施。 A. 危险因素    B. 人员状况    C. 设备状况    D. 环境状况 2.《安全生产法》规定&…...

【记录】Django数据库的基础操作

数据库连接 在Django中使用 mysqlclient 这个包用于数据库的连接&#xff0c;切换至 Django环境中直接 pip install mysqlclient 安装此包 1 数据库连接配置 在项目目录下的setting.py中配置 DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: mini,#数据库名US…...

XHCI 1.2b 规范摘要(五)

系列文章目录 XHCI 1.2b 规范摘要&#xff08;一&#xff09; XHCI 1.2b 规范摘要&#xff08;二&#xff09; XHCI 1.2b 规范摘要&#xff08;三&#xff09; XHCI 1.2b 规范摘要&#xff08;四&#xff09; XHCI 1.2b 规范摘要&#xff08;五&#xff09; 文章目录 系列文章目…...

小程序短链接生成教程

文章目录 一、小程序短链接&#xff08;必须发布正式的小程序才能生成短链接&#xff01;&#xff01;&#xff01;&#xff09;二、使用步骤1.获取token信息2.获取短链接 总结 一、小程序短链接&#xff08;必须发布正式的小程序才能生成短链接&#xff01;&#xff01;&#…...

C++进阶之路:再谈构造函数、static成员、友元(类与对象_下篇)

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…...

C 函数指针与回调函数

C 函数指针与回调函数 在C语言中&#xff0c;函数指针和回调函数是两个非常强大的概念&#xff0c;它们在提高代码的灵活性和模块化方面发挥着重要作用。本文将详细介绍C语言中的函数指针和回调函数&#xff0c;包括它们的定义、用法和实际应用场景。 函数指针 定义 函数指…...

CTF(九)

导言&#xff1a; 本文主要讲述在CTF竞赛网鼎杯中&#xff0c;web类题目AreUSerialz。 靶场链接&#xff1a;BUUCTF在线评测 一&#xff0c;分析代码。 看到了一大段php代码。 <?php// 引入flag.php文件 include("flag.php");// 高亮显示当前文件 highlight…...

三种单例实现

1、不继承Mono的单例 实现 使用 注&#xff1a; 使用需要继承BaseManager 泛型填写自己本身 需要实现无参构造函数 2、挂载式的Mono单例 实现 使用 注&#xff1a; 使用需要继承SingletonMono 泛型填写自己本身 需要挂载在unity引擎面板 3、不用挂载式的单例 实现 使…...

Spring XML配置方式和Spring Boot注解方式的详细对照关系

功能/配置项Spring XML配置方式Spring Boot注解方式定义Beanxml <bean id"myBean" class"com.example.MyBean"/>javaBeanpublic MyBean myBean() { return new MyBean(); }注入Beanxml <bean id"myBean" class"com.example.MyBea…...

leetcode 无重复字符串的排列和组合

1.题目要求: 2.题目代码&#xff1a; class Solution { public:vector<string> result;string str;//利用回溯去解决此问题void backtricking(string S,vector<bool>& used){if(str.size() S.size()){result.push_back(str);}//用used去掉重复的排列与组合f…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...