在使用自定义的Main函数启动应用时,应该需要做这几步:
1.去掉App.xaml的Application的starup属性。
2.右键App.xaml,属性 把生成操作改为Page。
3.如果有引入资源,需要在自己写的Main里引入资源,并且一定是在创建任何引用了Appli的资源的窗体前引入。否则,会出现,在设计窗体时,能看到资源样式,但运行时报错,找不到资源。
System.Uri resourceLocater = new System.Uri("/HelloLLLLL.PrivateAirDisk.ClientUI;component/app.xaml", System.UriKind.Relative);
System.Windows.Application.LoadComponent(App, resourceLocater);
 
另外,有个额外的知识点,窗体的DialogReslt的属性设置了非空值,窗体就会被认为是关闭了,比如这里, 设置DialogResult为false,没有调用Close,结果是这个LoginForm依然被关闭了,所以只有真的要关闭的时候才把结果设为true,不关闭,也不要设为false。总之非空就会关闭。
[STAThread]
static void Main()
{
App App = new App(); App.ShutdownMode = ShutdownMode.OnMainWindowClose;
System.Uri resourceLocater = new System.Uri("/HelloLLLLL.PrivateAirDisk.ClientUI;component/app.xaml", System.UriKind.Relative);
System.Windows.Application.LoadComponent(App, resourceLocater);
MainWindow m_MianWindow = new MainWindow();
var loginForm = new WinUserLogin(); bool? rt = loginForm.ShowDialog(); if (rt == true)
{
App.Run(m_MianWindow);
}
}

C# WPF 自定义Main方法总结的更多相关文章

  1. 为什么 WPF 的 Main 方法需要标记 STAThread 。

    在编写 WPF 程序时,会发现 Main 方法上方会标记 [STAThread] . 作用:STAThread 标记主线程,也就是 UI 线程是 STA 线程模型. 1 什么是 STA ? 与 STA ...

  2. WPF自定义Main函数

    第一步:在app.xaml.cs里加入以下代码: [STAThread] public static void Main(string[] args) { App app = new App(); a ...

  3. WPF应用程序启动的问题(自定义Main函数启动)

    问题引入: 一般WPF创建之后可以直接运行并不需要编写Main函数指定入口,但是在开发的过程中会遇到一些情况需要自定义Main让WPF从指定的Main函数中进行启动,这样可能会更好控制一点.但是我们再 ...

  4. WPF使用自定义Main函数

    一.自定义Main函数 在WPF中,我们添加一个Program静态类,添加一个Main静态方法,需要注意的是该方法需要添加"STAThread",表示WPF程序需运行在单一线程单元 ...

  5. WPF编译时提示“...不包含适合于入口点的静态‘Main’方法 ...”

    今天看了一下wpf的Application类方面的知识,一个windows应用程序由一个Application类的实例表示,该类跟踪在应用程序中打开的所有窗口,决定何时关闭应用程序(属性 Shutdo ...

  6. WPF编译时提示"xxx不包含适合于入口点的静态 Main方法xxx"

    WPF编译时提示"xxx不包含适合于入口点的静态 Main方法xxx"生成的时候一直报"xxx不包含适合于入口点的静态 Main 方法xxx" 看到这个问题首先 ...

  7. WPF学习- 新建项目后自定义Main()[Type 'App' already defines a member called 'Main' with the same parameter types]

    问题点: 在App.xaml.cs中自己添加Main方法,编译会出现如下报错: 错误 CS0111 类型“App”已定义了一个名为“Main”的具有相同参数类型的成员  错误 Type 'App' a ...

  8. WPF 自定义柱状图 BarChart

    WPF 自定义柱状图 当前的Telerik控件.DevExpress控件在图表控件方面做得不错,但是有时项目中需要特定的样式,不是只通过修改图表的模板和样式就能实现的. 或者说,通过修改当前的第三方控 ...

  9. WPF 自定义 MessageBox (相对完善版)

    WPF 自定义 MessageBox (相对完善版)     基于WPF的自定义 MessageBox. 众所周知WPF界面美观.大多数WPF元素都可以简单的修改其样式,从而达到程序的风格统一.可是当 ...

  10. WPF自定义Window样式(2)

    1. 引言 在上一篇中,介绍了如何建立自定义窗体.接下来,我们需要考虑将该自定义窗体基类放到类库中去,只有放到类库中,我们才能在其他地方去方便的引用该基类. 2. 创建类库 接上一篇的项目,先添加一个 ...

随机推荐

  1. Gitee码云:用git上传本地文件到码云gitee的方法

    首先登录码云 https://gitee.com/,注册一个账号,并登录账号. 1. 在码云上创建项目 在码云首页顶部,下图所示,右上角头像旁边的加号,鼠标移上去会显示下拉的,点击"新建项目 ...

  2. MogDB 2.1.1 初始化参数概要说明

    MogDB 2.1.1 初始化参数概要说明 本文出处:https://www.modb.pro/db/394787 MogDB 数据库安装完成后,官方文档提供了刷新参数的脚本,推荐执行脚本来进行初始化 ...

  3. triple loss

    Triplet Loss是深度学习中的一种损失函数,用于训练差异性较小的样本,如人脸等, Feed数据包括锚(Anchor)示例.正(Positive)示例.负(Negative)示例,通过优化锚示例 ...

  4. sql 语句系列(两个日期之间)[八百章之第十七章]

    前言 进入了日期章了. 年月日加减法 分别对原有的日期进行加减法. sql server select DATEADD(DAY,-5,HIREDATE) as hd_mimus_5D, DATEADD ...

  5. mysql 重新整理——逻辑架构[二]

    前言 在此简洁逻辑架构,mysql的基础逻辑架构其实和sql server很像的. 正文 首先是客户端,发起了连接. 然后呢连接池后那一块,就是有分析器的那一块,那一块是干啥的呢. 其实我们写的语句呢 ...

  6. js es6 标签模板还原字符串

    前言 模板字符串的功能,它可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串.这被称为"标签模板"功能(tagged template). 举个栗子: function ...

  7. requests模块发送post请求,flask开启服务接收请求,python

    request模块部分 import requests import json if __name__ == '__main__': url = 'http://127.0.0.1:5000' dat ...

  8. 05_理解MVVM模型

    总结: MVVM模型:         1.M:模型(Model):data中是的数据         2.V:视图(View):模板代码         3.VM:视图模型(ViewModel):V ...

  9. 力扣682(java)-棒球比赛(简单)

    题目: 你现在是一场采用特殊赛制棒球比赛的记录员.这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分. 比赛开始时,记录是空白的.你会得到一个记录操作的字符串列表 ops,其中 ops ...

  10. 为 Serverless Devs 插上 Terraform 的翅膀,解耦代码和基础设施,实现企业级多环境部署(下)

    简介: 在上篇<为 Serverless Devs 插上 Terraform 的翅膀,实现企业级多环境部署(上)>中,主要介绍了 Serverless Devs 多环境功能的使用,用户读完 ...