WPF实践系列1 of n 自定义WPF程序的Main函数

关于开篇

由于业务需要参与到一个Window下的WPF项目中。因为之前的工作环境一直在Linux下,C和C++作为主力开发语言,

因此加入新项目对自己来说是变化,同时也是挑战;学点新东西拓宽下视野。

关于WPF实践系列

项目是个中型的Windows客户端,需要通过网络和SQL服务器交互。由于有多版本兼容需求(xp-win10)和高分屏需求,选了WPF方案,在Visual Studio 2017下进行开发。

博主目前对WPF和 .Net这些知识仅是略知一二。取名实践系列,意指在过程中边做边学。主要记录过程中遇到的问题和解决方法。文章中出现的项目名字和代码均为举例,不是项目中的真实内容。

正文 自定义WPF程序的Main函数

问题: 希望在主窗口显示前,插入一段全局配置设定处理和一个登录窗口进行登陆流程处理

在IDE中新建一个.Net Framework 4.0的WPF项目WPFApplication,默认的工程结构如下

默认的入口是自动生成的App.Main,几番尝试之后发现达不到想要的效果。从而萌生出了重写Main函数想法。马上尝试,新建一个Program.cs,很容易就实现想要的流程。

但App.Main要怎么处理?IDE提示程序入口有2个?看着IDE给出的智能提示,想起了编程最开始学的知识:一个程序只有一个main函数

其实应该是一个程序只有一个入口,这个入口约定俗成是main函数。

那就好办了,只要告诉IDE程序入口是我自己写的Main,不是自动生成的App.Main,错误的提示就会消失了。

方法就是在项目属性中设置启动对象为WPFApplication.Program。这个设置开始不知道,搜了下关键字找到了。

处理前后的工程结构对比如下

  

然后是自定义的Main函数

正文完。

时间: 2024-12-23 22:19:08

WPF实践系列1 of n 自定义WPF程序的Main函数的相关文章

程序设计基石与实践系列之编写高效的C程序与C代码优化

原文出处: codeproject:Writing Efficient C and C Code Optimization 虽然对于优化C代码有很多有效的指导方针,但是对于彻底地了解编译器和你工作的机器依然无法取代,通常,加快程序的速度也会加大代码量.这些增加的代码也会影响一个程序的复杂度和可读性,这是不可接受的,比如你在一些小型的设备上编程,例如:移动设备.PDA--,这些有着严格的内存限制,于是,在优化的座右铭是:写代码在内存和速度都应该优化. 整型数 / Integers 在我们知道使用的

Jhipster实践系列 - 生成单体架构的应用程序

本文演示如何用Jhipster自动生成一个单体架构风格的应用程序. 示例应用程序名: app1 示例实体表名: role Jhipster主机IP:192.168.109.130 1 生成工程代码 $ mkdir app1 && cd app1/ $ jhipster # 命令行会提示可以选择的应用类型: # 选择Monolithic application: # 接着继续选择其它可选项,也可以全部按回车选择默认选项: # <等待生成代码>: # -- # -- Success

WPF QuickStart系列

接触WPF有一段时间了,现在做的项目也是WPF相关的.所以决定写一个WPF QuickStart系列的文章.也是自己对WPF学习的总结,如果对你有帮助,我也非常开心.因为不善言辞,所以尽量以WPF示例和代码注释的形式来写这一个系列的博客.当中也会有一些自己对WPF特性的理解写下来,锻炼自己的文笔和语言组织能力.下面是写博客的计划, 1.附加属性(Attached Property): 2.依赖属性(Dependency Property): 3.数据绑定(Data Binding): 4.模板和

【分享】深入浅出WPF全系列教程及源码

本人10月份提出离职,可是交接非常慢,预计年底才会交接完,趁着交接之际,自学了一下WPF,由于这是微软未来的发展趋势,自WIN7以来包含前不久公布的WIN8,核心还是WPF,在此,将自己的学习成果做一个总结,同一时候将自己学习积累的东西和广大博友分享,希望大家能共同进步.在文章的结尾我会将全系列的源码地址提供给大家,有须要的朋友能够下载下来自己研究研究.由于之前申请WPF博客专栏一直没有申请下来,所以用一篇文章来结束我的学习,同一时候也给初学的人提供一个学习文件夹,提高学习效率,废话不多说,直接

WPF学习系列之五(WPF控件)

控件:    1.内容控件------这些控件能够包含嵌套的元素,为它们提供几乎无限的显示能力.内容控件包括Lable,Button 以及ToolTip类. 内容控件是更特殊的控件类型,它们可以包含(并显示)一块内容.从技术角度来讲,内容控件是可以包含单个嵌套元素的控件.与布局容器不同的是内容控件只能包含一个子元素,而布局控件只要愿意可以包含任意多个嵌套元素.              提示:当然,仍然可以在单个内容控件中放置大量内容-----诀窍是使用单个容器,比如,使用StackPanel面

WPF学习系列之二 (依赖项属性)

依赖属性;(dependency property)  它是专门针对WPF创建的,但是WPF库中的依赖项属性都使用普通的.NET属性过程进行了包装.从而可能通过常规的方式使用它们,即使使用他们的代码不理解WPF依赖项属性系统也是如此,使用旧技术包装新技术看起来有些奇怪,但这正是WPF能够改变基础组成部分,而不会扰乱.NET领域中其他部分的原因.三步:一:定义依赖项属性.public static readonly DependencyProperty MarginProperty;二:.在静态构

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

问题引入: 一般WPF创建之后可以直接运行并不需要编写Main函数指定入口,但是在开发的过程中会遇到一些情况需要自定义Main让WPF从指定的Main函数中进行启动,这样可能会更好控制一点.但是我们再APP.xaml.cs中自定义Main函数后运行时会提示程序已经存在Main,即出现以下错误: 错误 CS0111 类型"App"已定义了一个名为"Main"的具有相同参数类型的成员  错误 Type 'App' already defines a member cal

【【分享】深入浅出WPF全系列教程及源码 】

因为原书作者的一再要求,在此声明,本书中的部分内容引用了原书名为<深入浅出WPF>的部分内容,假设博文不能满足你现有的学习须要,能够购买正版图书! 本人10月份提出离职,可是交接非常慢,预计年底才会交接完,趁着交接之际,自学了一下WPF,由于这是微软未来的发展趋势,自WIN7以来包含前不久公布的WIN8,核心还是WPF,在此,将自己的学习成果做一个总结,同一时候将自己学习积累的东西和广大博友分享,希望大家能共同进步.在文章的结尾我会将全系列的源码地址提供给大家,有须要的朋友能够下载下来自己研究

MvvmLight学习篇—— Mvvm Light Toolkit for wpf/silverlight系列(导航)

一.Mvvm Light Toolkit for wpf/silverlight系列之准备工作 二.Mvvm Light Toolkit for wpf/silverlight系列之搭建mvvmlight开发框架 三.Mvvm Light Toolkit for wpf/silverlight系列之数据绑定 四.Mvvm Light Toolkit for wpf/silverlight系列之Command和Events 五.Mvvm Light Toolkit for wpf/silverli