WPF的启动函数和启动入口

C#-WPF的启动函数和启动入口

 

        之前在自动化设备的上位机控制系统的时候,一直用MFC编程,用了大概4年多,MFC编程上位机工作量大,容易导致系统不稳定,对人员的要求很高,曾经招聘了深圳某大学的硕士研究生,写简单的界面,愣是花了好几个月的时间,最终的结果是项目超时,并导致失败!

        天下武功,唯快不破。如何使上位机开发足够快速?一直是我思考的问题,用过开源的界面库,使界面与界面逻辑分离,比如DuiLib,发现这个也是个坑爹的玩意儿,开发工具很差劲,对人员的要求更高,至少要求他们再去时序开源库的内部实现原理,然后调用它的API接口,在项目的时间上,更不划算。

       后面综合考虑,使用了C#和WPF。由于从MFC转到WPF,对WPF必须尽快的熟悉,并做到能开发现有的工作,于是,匆匆的,又来学习WPF了。

打开WPF,新建一个工程,找呀找,发现没有入口函数,于是就想,我该在哪里找到入口函数呢?


发现,在App.Xaml文件中,他定义了一个入口Window1.xaml;可以进入Window1的构造函数。


 

那么我就尝试着新建一个窗口,并将启动修改为Window2,即StartupUri=Window2.xml’’>。果然,意料之中,可以进入Window2的构造函数。


于是,我可以顺利的随意选择启动时的窗体了。但是,问题来了,我启动的时候,并不想直接进入窗体的构造函数,那我该怎么办?有没有办法进入自己写的Main()函数的入口? WPF自己的入口函数又在哪里呢?考虑到入口是从APP.cs进入的,那我自己在该类里面加入一个Main函数试试


将xaml的入口语句改为 StartupUri=Main’’> ,编译无错误,运行后发现找不到入口


我嘞个去,这样不行啊。于是找呀找,发现在工程设置那里,有个一个启动对象很显眼,App是一个窗体无关的类,于是自己添加一个类Entrance.cs,命名为Program, 再去看看启动对象,果然增加了一个类Program,如下图。

选中Program选项框,在该类里面增加一个函数

namespace TestWPF
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            TestWPF.App app = new TestWPF.App();
            app.InitializeComponent();
            Window1 windows = new Window1();
            app.MainWindow = windows;
            app.Run();
        }
    }
}
xaml的入口语句改依旧是 StartupUri=Main’’> ,编译,运行,成功!!


©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页