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

WPF启动窗体的三种方式

启动窗体的三种方式:
1. StartupUri=“MainWindow.xaml”,比Application_Startup执行的晚。推荐方案

在App.xaml文件中

<Applicationx:Class="Wpf启动窗体三种方式.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-namespace:Wpf启动窗体三种方式"StartupUri="MainWindow.xaml"><Application.Resources><!-- 应用程序资源 --></Application.Resources>
</Application>

2. Application_Startup事件,可以在启动某个窗体时,携带参数。推荐方案

在App.xaml文件中

<Applicationx:Class="Wpf启动窗体三种方式.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-namespace:Wpf启动窗体三种方式"Startup="Application_Startup"><Application.Resources><!-- 应用程序资源 --></Application.Resources>
</Application>

在App.xaml.cs

public partial class App : Application
{private void Application_Startup(object sender, StartupEventArgs e){MainWindow mainWindow = new MainWindow();//mainWindow.Show();mainWindow.ShowDialog();}
}

3. 自定义Main方法,不建议。会造成Startup事件和StartupUri属性无效,控件权完全交给开发者。没必要的。

// App中定义一个Main方法,WPF默认也提供一个Main方法(在App.g.i.cs这个文件中)。但Main入口方法有且只有一个。所以报错。解决:去掉一个Main。

// 通过测试发现XXX.g.i.cs(在obj->Debug中可以看见该文件)这样文件不能改动,重新编译后,WPF会重新生成。改动的地方还原了。造成修改无效。

// 需要:
// 1。把App.xaml生成操作选择“无”,即编译App.xaml时不让它产生Main方法。开发者才能自定义Main方法。// 2。添加特性 [STAThread],原因:WPF中的控件运行需要一个线程安全的环境。在这里插入图片描述

[STAThread]
public static void Main(string[] args)
{// 实例化一个窗体MainWindow main = new MainWindow();LoginWindow login = new LoginWindow();if(login.ShowDialog() == true){// 实例化一个应用程序Application app = new Application();// 应用程序运行时启动第一个窗体app.Run(main);}
}
http://www.dtcms.com/a/362662.html

相关文章:

  • 达梦:存储过程实现多个用户之间表的授权
  • 如何在本地环境中搭建 GitLab 服务器
  • 《IC验证必看|SV中Process控制》
  • ffmpeg 安装
  • 添加⽂件--场景⼆
  • JVM1.8与1.9的区别是什么?
  • 实验2-代理模式和观察者模式设计
  • 实验1-工厂方法和抽象工厂模式
  • C++编程语言:标准库:第37章——正则表达式(Bjarne Stroustrup)
  • 支付系统设计模式应用:从单例到观察者模式实践
  • 普通大学生的 Web3 实习怎么找?行业指南与实践技巧这里看
  • ArkUI核心功能组件使用(一)
  • ChatDOC工具测评:AI驱动PDF/Word文档处理,支持敏感内容隐私保护与表格提取分析
  • 一文吃透 deviceQuery:从安装到输出解读,彻底验证服务器 GPU 环境
  • Elasticsearch 核心知识与常见问题解析
  • 【学Python自动化】 7.1 Python 与 Rust 输入输出对比学习笔记
  • Dell 服务器更新Infiniband网卡固件操作
  • 大模型适配国产化服务器昇腾(300I DUO)
  • 信创服务器总死机原因及解决办法
  • 通过 FinalShell 访问服务器并运行 GUI 程序,提示 “Cannot connect to X server“ 的解决方法
  • 【技术教程】如何将文档编辑器集成至基于Node.js的网页应用程序中
  • Babylon 编辑器快捷键小记
  • 临时邮箱地址获取服务器邮件工作流程与实现
  • Coze源码分析-工作空间-资源查询-后端源码
  • vue2滑块验证
  • 2025年IT行业女性职业发展证书选择指南
  • 从零开始在Ubuntu上快速部署Docker和Dify:结合 Dify + 蓝耘 MaaS平台打造 AI 应用实战指南
  • 网络准入控制,阻断违规外联-企业内网安全的第一道防线
  • 2025 随身 WIFI 行业报告:从拼参数到重体验,华为 / 格行 / 中兴技术差异化路径解析
  • 华为HCIE认证:三年有效期值不值得?