WPF 用Main函数方式启动程序

依然范特西╮ 提交于 2020-02-27 02:40:08

WPF默认程序启动:新建project后自动生成的App.xaml中指定程序启动方式(StartupUri="MainWindow.xaml"),如下代码所示,启动MainWindow页面

<Application x:Class="MyFirstWPFApplication.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:MyFirstWPFApplication"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
         
    </Application.Resources>
</Application>

 

WPF用Main函数方式启动程序:自己写Main函数作为启动点

1.在WPF自动生成的App.cs文件中写Main函数

public partial class App : Application
    {
        [STAThread]
        static void Main()
        {       // 方式1
            Application app = new Application();
            MyWindow win = new MyWindow();
            app.Run(win);

            // 方式2
            MyWindow win = new MyWindow ();  
            app.MainWindow = win; 
            win.Show();       
            app.Run();  

            // 方式3
            app.StartupUri = new Uri("MyWindow.xaml", UriKind.Relative); 
            app.Run();
        }
    }

2.自己创建一个类,写Main函数

public static class StartUpClass
    {

   // [STAThread] attribute指示应用程序的 COM线程模型是单线程单元
        [STAThread]
        public static void Main(string[] args)
        {
            SingleInstanceStart SingleInstanceStart = new SingleInstanceStart();
            SingleInstanceStart.Run(args);
        }
    }

WindowsFormsApplicationBase需要引用Microsoft.VisualBasic.dll

public class SingleInstanceStart : WindowsFormsApplicationBase
    {
        protected override bool OnStartup(StartupEventArgs e)
        {
            // DoSomething
            return true;
        }
    }

最后 需要更改App.xaml文件属性

生成操作从ApplicationDefinition改为Page。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!