C# wpf程序
--App.xaml
namespace WpfMyproject
{
/// <summary>
/// App.xaml 的交互逻辑
/// </summary>
public partial class App : PrismApplication
{
protected override Window CreateShell()
{
return Container.Resolve<MainView>();
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
第二种方式
//containerRegistry.RegisterForNavigation<AutoView>();
//containerRegistry.RegisterForNavigation<ManuView>();
//containerRegistry.RegisterForNavigation<SetView>();
//containerRegistry.RegisterForNavigation<ParameterView>();
//containerRegistry.RegisterForNavigation<StatisticView>();
//containerRegistry.RegisterForNavigation<AlarmView>();
//containerRegistry.RegisterForNavigation<UserView>();
}
protected override IModuleCatalog CreateModuleCatalog()
{
return new DirectoryModuleCatalog() {ModulePath = @".\Modules" };
}
}
}
--MainView.xaml
<Window.Resources>
<Style x:Key="MenuButtonStyle" TargetType="Button">
<Setter Property="Margin" Value="5,5"/>
<Setter Property="Width" Value="100"/>
<Setter Property="Height" Value="60"/>
<Setter Property="FontSize" Value="20"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Background" Value="#666666"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition/>
<RowDefinition Height="60"/>
</Grid.RowDefinitions>
<Border Grid.Row="0" Background="#333366"/>
<Border Grid.Row="2" Background="#cccccc"/>
<Border Grid.Row="3" Background="Green"/>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition/>
<ColumnDefinition Width="200"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0">
<TextBlock Margin="0,40" Text="图片" Width="100" FontSize="30" Foreground="Yellow" />
</StackPanel>
<StackPanel Grid.Column="2">
<TextBlock Margin="0,20" Text="当前登录用户:" FontSize="18" Foreground="Purple"/>
</StackPanel>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0">
<TextBlock Margin="0,5" Text="智能控制系统" Width="100" FontSize="20" Foreground="White"/>
</StackPanel>
<StackPanel Grid.Row="1" Orientation="Horizontal">
<Button Style="{StaticResource MenuButtonStyle}" Content="自动" Command="{Binding OpenCommand}" CommandParameter="AutoView"/>
<Button Style="{StaticResource MenuButtonStyle}" Content="手动" Command="{Binding OpenCommand}" CommandParameter="ManuView"/>
<Button Style="{StaticResource MenuButtonStyle}" Content="设置" Command="{Binding OpenCommand}" CommandParameter="SetView"/>
<Button Style="{StaticResource MenuButtonStyle}" Content="参数" Command="{Binding OpenCommand}" CommandParameter="ParameterView"/>
<Button Style="{StaticResource MenuButtonStyle}" Content="统计" Command="{Binding OpenCommand}" CommandParameter="StatisticView"/>
<Button Style="{StaticResource MenuButtonStyle}" Content="报警" Command="{Binding OpenCommand}" CommandParameter="AlarmView"/>
<Button Style="{StaticResource MenuButtonStyle}" Content="登录" Command="{Binding OpenCommand}" CommandParameter="UserView"/>
</StackPanel>
</Grid>
</Grid>
<!--//第一种方式-->
<!--<ContentControl Grid.Row="1" Content="{Binding Body}"/>-->
<!--//第二种方式-->
<ContentControl Grid.Row="1" prism:RegionManager.RegionName="ContentRegion"/>
</Grid>
--MainViewModel
namespace WpfMyproject.ViewModels
{
public class MainViewModel : BindableBase
{
//第一种方式
//public DelegateCommand<string> OpenCommand { get; private set; }
//public MainViewModel()
//{
// OpenCommand = new DelegateCommand<string>(Open);
//}
//private object body;
//public object Body
//{
// get { return body; }
// set { body = value; RaisePropertyChanged(); }
//}
//private void Open(string obj)
//{
// switch (obj)
// {
// case "AutoView": Body = new AutoView(); break;
// case "ManuView": Body = new ManuView(); break;
// case "SetView": Body = new SetView(); break;
// case "ParameterView": Body = new ParameterView(); break;
// case "StatisticView": Body = new StatisticView(); break;
// case "AlarmView": Body = new AlarmView(); break;
// case "UserView": Body = new UserView(); break;
// }
//}
//第二种方式
private readonly IRegionManager regionManager;
public DelegateCommand<string> OpenCommand { get; private set; }
public MainViewModel(IRegionManager regionManager)
{
OpenCommand = new DelegateCommand<string>(Open);
this.regionManager = regionManager;
}
private void Open(string obj)
{
regionManager.Regions["ContentRegion"].RequestNavigate(obj);
}
}
}
相关文章:
C# wpf程序
--App.xaml namespace WpfMyproject { /// <summary> /// App.xaml 的交互逻辑 /// </summary> public partial class App : PrismApplication { protected override Window CreateShell() { return Container.R…...
4G WWAN设备类型
WWAN设备类型 USB dongle是设备接入互联网的重要方式之一,典型的通过USB接口与主设备连接,然后主设备通过4G/5G接入互联网,作为移动宽带设备,它有那些设备类型及暴露方式呢? 移动宽带设备类型:ModemManage…...
windows环境下安装elasticsearch、kibana
通过本文可以快速在windows系统上安装elasticsearch、kibana环境。 当你用Integer类型的时候,要非常小心,因为100等于100、但是200不等于200,当然,如果你会一点小花招,也可以让100不等于100、让200等于200。(运算符比较…...
Java Selenium WebDriver 网页填报
一、windows环境安装配置 1.安装chrome浏览器 在“关于chrome”界面,查看浏览器版本号 2.下载chromeDriver 在https://registry.npmmirror.com/binary.html?pathchromedriver/下载对应版本的驱动(如果浏览器版本过新,建议下载最接近的版…...
【NLP概念源和流】 06-编码器-解码器模型(6/20 部分)
一、说明 在机器翻译等任务中,我们必须从一系列输入词映射到一系列输出词。读者必须注意,这与“序列标记”不同,在“序列标记”中,该任务是将序列中的每个单词映射到预定义的类,如词性或命名实体任务。 作者生成 在上面的...
运维必备的免费在线画图工具,你觉得哪个最好用呢
都说一图胜千言,一个IT工程师如果能画的一手好图,无论是在方案选项、还是技术交流,都能快速表达自己的想法,让你的思路更加的直观明了;市面上的制图工具有很多,下面就推荐几款好用且免费的工具,…...
skywalking全链路追踪
文章目录 一、介绍二、全链路追踪1. 测试1 - 正常请求2. 测试2 - 异常请求 三、过滤非业务请求链路1. 链路忽略插件2. 配置3. 测试 一、介绍 在上一篇文章skywalking安装教程中我们介绍了skywalking的作用以及如何将其集成到我们的微服务项目中。本篇文章我们介绍在微服务架构…...
Nacos配置中心设置Mongodb
目录 1.common模块导入nacos config依赖 2.common模块新建bootstrap.yaml 3.在自己的模块导入common模块依赖 4.打开nacos新建配置,发布 5.运行服务并测试 效果:在部署完成后,其他人可以自动连接到你本地mongoDB数据库,无需再…...
【Spring Boot】请求参数传json对象,后端采用(map)CRUD案例(101)
请求参数传json对象,后端采用(map)接收的前提条件: 1.Spring Boot 的Controller接受参数采用:RequestBody 2.需要一个Json工具类,将json数据转成Map; 工具类:Json转Map import com…...
微软开测“Moment4”启动包:Win11 23H2要来了
近日, 有用户在Win11最新的7月累积更新中发现,更新文件中已经开始出现了对“Moment4”的引用。 具体来说,在7月累积更新中,微软加入了“Microsoft-Windows-UpdateTargeting-ClientOS-SV2Moment4-EKB”“Microsoft-Windows-23H2Ena…...
SpringCloud《Eureka、Ribbon、Feign、Hystrix、Zuul》作用简单介绍
概述 SpringCloud是一个全家桶,包含多个组件。 本文主要介绍几个重要组件,也就是Eureka、Ribbon、Feign、Hystrix、Zuul这几个组件。 一、业务场景介绍 业务流程,支付订单功能 订单服务改变为已支付订单服务调用库存服务,扣减…...
运维项目—K8S命令
文章目录 一、基本操作1、命名空间kubectl get ns 获取命名空间kubectl get ns default -o yaml 以yaml的格式查看某个nskubectl describe ns hoc-prod 查看某个ns详情1、命名空间与Podkubectl get pods --all-namespaces查看所有命名空间下的所有podkubectl get pod -A查看所有…...
java框架整合Springmvc+···+maven
框架整合: Springmvc Mybatis Shiro(权限) REST(服务) WebService(服务) JMS(消息) Lucene(搜搜引擎) Quartz(定时调度) Bootstrap Html5(支持PC、IOS、Android) 系统模块: 1. 用户管理: 用户信…...
答辩PPT怎么做?在线PPT软件哪个好?
又是一年毕业季,相信很多毕业生都开始准备论文答辩,有些同学正在为论文奋夜苦战,有些则是为论文答辩PPT而烦恼。做PPT要用什么软件好呢?这篇文章就来告诉你。 当下有很多PPT制作工具,其中自然也包括Office三件套。这些…...
Astro + Vercel 快速搭建自己的博客网站
Astro 和 Vercel 彼此相得益彰,前者提供出色的开发者体验,用于构建现代静态站点,而后者负责部署和托管代码。 两者结合我们就可以轻轻松松零成本搭建自己的博客网站。查看示例。 步骤 1,创建评论仓库 在部署博客之前ÿ…...
TensorFlow
什么是 TensorFlow TensorFlow是一个开源的机器学习框架,由Google于2015年推出。它被设计用来构建深度神经网络和其他机器学习模型,从而可以实现图像识别、语音识别、自然语言处理、推荐系统、搜索引擎、预测和控制等应用。TensorFlow是一个基于数据流图…...
【iOS RunLoop】
文章目录 前言-什么是RunLoop?默认情况下主线程的RunLoop原理 1. RunLoop对象RunLoop对象的获取 CFRunLoopRef源码部分(引入线程相关) 2. RunLoop和线程3. RunLoop相关的类RunLoop相关类的实现CFRunLoopModeRef五种运行模式CommonModes CFRun…...
阿里云平台注册及基础使用
首先进入阿里云官网: 阿里云-计算,为了无法计算的价值 点击右上角“登录/注册”,如果没有阿里云账号则需要注册。 注册界面: 注册完成后需要开通物联网平台公共实例: 注册成功后的登录: 同样点击右上角的…...
Mr. Cappuccino的第58杯咖啡——MacOS配置Maven和Java环境
MacOS配置Maven和Java环境 查看Mac使用的是哪个shell下载并准备Maven下载Maven配置前准备 下载并安装JDK下载JDK安装JDK 配置Maven和Java环境添加配置加载配置 验证环境 查看Mac使用的是哪个shell echo $SHELL如果使用的是bash,则使用以下命令 open ~/.bash_profi…...
linux Ubuntu 更新镜像源、安装sudo、nvtop
1.更换镜像源 vi ~/.pip/pip.conf在打开的文件中输入: pip.conf [global] index-url https://pypi.tuna.tsinghua.edu.cn/simple按下:wq保存并退出。 2.安装nvtop 如果输入指令apt install nvtop报错: E: Unable to locate package nvtop 需要更新一下apt&a…...
Rust的匹配中的通配符模式与剩余模式在元组解构中的组合使用技巧
Rust作为一门注重安全与性能的系统级编程语言,其模式匹配机制为开发者提供了强大的表达能力。在元组解构中,通配符模式与剩余模式的组合使用尤其值得关注,它们能显著提升代码的简洁性与灵活性。本文将深入探讨这一技巧的实用场景,…...
用Grad-CAM破解YOLOv8黑箱:为什么你的模型总认错物体?(案例演示)
用Grad-CAM破解YOLOv8黑箱:为什么你的模型总认错物体?(案例演示) 当你的YOLOv8模型将哈士奇误判为狼,或是把路灯识别成行人时,问题的根源往往藏在卷积神经网络那些不可见的注意力分布中。本文将通过三个典型…...
【个人博客—山东大学项目实训——古诗词与文章智能创作助学平台(一)】
个人博客—山东大学项目实训——古诗词与文章智能创作助学平台(一)大模型API接入与诗词检索的提示词工程一、功能概述二、大模型API接入2.1 ArkService初始化2.2 基础对话方法三、诗词检索的提示词设计3.1 提示词内容3.2 检索服务实现四、JSON解析容错处…...
.NET 磁盘BitLocker加密-技术选型忠
在之前的文章中,我们花了大量的篇幅,从记录后端pod真实ip开始说起,然后引入envoy,再解决了各种各样的需求:配置自动重载、流量劫持、sidecar自动注入,到envoy的各种能力:熔断、流控、分流、透明…...
记录复现多模态大模型论文OPERA的一周工作泄
一、简化查询 1. 先看一下查询的例子 /// /// 账户获取服务 /// /// /// public class AccountGetService(AccountTable table, IShadowBuilder builder) {private readonly SqlSource _source new(builder.DataSource);private readonly IParamQuery _accountQuery build…...
CANoe_UDS-Bootloader刷写系列-含源码(一)从零构建刷写流程框架
1. 从零搭建UDS Bootloader刷写框架的底层逻辑 第一次接触汽车ECU刷写的工程师,往往会被各种服务编号和流程搞得晕头转向。我刚开始做车载诊断时,面对$10、$27这些神秘代码也是一头雾水。后来发现,理解刷写流程就像组装乐高积木——只要掌握每…...
、SEATA分布式事务——XA模式煞
MySQL 中的 count 三兄弟:效率大比拼! 一、快速结论(先看结论再看分析) 方式 作用 效率 一句话总结 count(*) 统计所有行数 最高 我是专业的!我为统计而生 count(1) 统计所有行数 同样高效 我是 count(*) 的马甲兄…...
Pixel Language Portal部署教程:Windows WSL2环境下Hunyuan-MT-7B运行指南
Pixel Language Portal部署教程:Windows WSL2环境下Hunyuan-MT-7B运行指南 1. 引言:开启你的像素翻译冒险 想象你正站在一个16-bit像素世界的传送门前,手中握着一把能打开33种语言大门的钥匙。这就是Pixel Language Portal(像素…...
FastAPI项目架构:从模块化设计到生产就绪的目录规划
1. 为什么需要模块化的FastAPI项目架构 第一次用FastAPI写项目时,我把所有代码都堆在main.py里。路由、数据库操作、业务逻辑全挤在一起,结果两周后连自己都看不懂代码了。这种经历让我深刻理解到:好的目录结构不是摆设,而是项目可…...
2026届最火的五大AI论文工具横评
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 借助人工智能来辅助撰写开题报告,可显著提高研究框架构建的效率,在用…...
