呼叫WPF程式時傳入引數
阿新 • • 發佈:2019-02-07
在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程式, 這樣就實現了 呼叫時傳入些資料與邏輯控制。 希望對大家有所幫助。