在WPF Project中,默认的Startup object的是App。
先来看一下VS为我们创建的 App.xaml.cs 文件,并有有看到入口函数Main()
那么入口函数在哪呢? 其实系统将WPF的入口函数保护起来了(个人理解),当用户build后, 在obj文件夹下有个App.g.cs文件
打开这个文件后,我们可以看到这里也是App的一个Partial class。 值得注意的是InitializeComponent(), 程序在这里绑定StartupUri。
我们看到 入口函数Main(), 默认状态下是不接受 传入参数的。 有的人说可以直接在这里添加参数String[] args, 是的 直接添加后的确可以
接受参数。 但是当我们rebuild 以后 Obj 文件夹里的文件将被重写,也就是说main() 还是会恢复成原来的样子。
综合考虑决定自己重写入口函数Main(), 改变程序入口点,我们的main() 接受 args
Step1: 添加一个新类并定义Main() 函数(我就直接在App.xaml.cs里定义了)
获取参数结束后,调用App.Main()
Step2: 在Application的property 里修改Startup oject
如果下拉里没有出现我们class, 建议save solution 重启 VS。(个人遇到过几回)
现在来试一下:
1. 直接在Cmd里运行,没有任何出入参数
2. 在Cmd中运行 带参数(将参数显示在路径上)
Ok 完成了 。 本人在项目中遇到,需要在现有的Project里调用 其他WPF程序, 这样就实现了 调用时传入些数据与逻辑控制。 希望对大家有所帮助。
本文介绍了如何在WPF项目中自定义入口函数Main()以接收命令行参数。默认情况下,WPF的Main()函数不接受参数,但通过在App.xaml.cs中创建新的Main()函数,并修改Startup Object,可以实现参数传递。这种方法适用于需要在运行时向WPF程序传入数据和逻辑控制的场景。
1149

被折叠的 条评论
为什么被折叠?



