每一个WPF应用程序,其实都有一个隐藏的Main函数。如果有的时候我们需要给WPF应用程序传递参数,我们需要自己写一个包含Main函数的类来实现。
首先定义一个MainApp类,这个类中必须有一个带参数的Main(string[] args)函数:
[STAThread] public static void Main(string[] args){...}
外部传递过来的参数就在string[] args里面,例如传递的参数是字符串“1 2 3”,则args的内容是args[0]="1",args[1]="2",args[2]="3",每个数组元素间是以空格分隔的。
然后,将带有Main函数的MainApp类设置为启动对象,选择当前项目->然后右键->选择属性->应用程序面板,设置启动对象。
这样打开程序,程序就会从MainApp类的Main函数启动,而不是原来隐藏的Main函数。但是这并没有结束,我们接收到参数以后,还需要启动以前的应用程序。
在项目中应该有一个App.xaml和一个App.xaml.cs文件。他们是一个自动生成的Application类,在App.xaml里面设置程序的启动页面StartupUri="Window.xaml",也就是我们原先的程序界面。
我们需要在新的MainApp类的Main函数最后实例化这个App类,然后运行,以启动Window.xaml所定义的窗口。
App app = new App(); app.InitializeComponent(); app.Run();
这样就能启动原来的界面。