1. 程式人生 > >呼叫WPF程式時傳入引數

呼叫WPF程式時傳入引數

在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程式, 這樣就實現了 呼叫時傳入些資料與邏輯控制。 希望對大家有所幫助。