2011-04-27 18 views
2

有沒有人試過被用作一個類庫或覺得有必要開始他們的應用程序在一個獨立的EXE文件,並使用WPF作爲只是一個DLL,而不是使它的主要方法?如何WPF項目轉換,因此它可以通過一個單獨的EXE

我看到的優點是邏輯分離,並且能夠設置一個工廠等的WPF代碼之外,從而減少組件的依賴關係。

我試過這樣做,可以得到如此遠,例如通過設置WPF項目設置爲'類庫',從app.xaml中刪除startupuri並設置其編譯操作以編譯等,或者從單獨的exe調用app.run或者在主窗口中調用一個方法來調用它。

然而,在App.xaml中的資源(例如,用於按鈕定義的樣式)似乎沒有任何效果當我這樣做。將WPF項目轉換回其默認設置(startupuri等)讓資源再次運行,但我不確定問題出在哪裏。有任何想法嗎?

+1

你有沒有想過這樣做呢?讓WPF成爲exe文件,並將你的代碼分離出一個庫? – 2011-04-27 14:09:24

+0

完全同意@Martinho Fernandes。這實際上是我通常做的事:在我的WPF項目中使用所有與應用程序相關的視圖和視圖模型,並將自定義的可重用視圖,轉換器和業務對象保存在單獨的庫中 – Damascus 2011-04-27 14:29:16

+0

Martinho/Damascus,我有通常的單獨圖層(控制器,域,存儲庫等),並將視圖(WPF)圖層視爲另一個圖層。因此,我更喜歡有一個單獨的exe來初始化並啓動整個應用程序。最簡單的選擇當然是讓你的啓動項目成爲WPF項目,因爲MS似乎希望你做事,但那不是我想要做的事情。 – sturdytree 2011-04-27 17:40:53

回答

0

可以創建控制庫(自定義控制庫或用戶控制庫)從應用程序分開可重用控件。但正如其所稱,它們是控制庫。您可以將資源設置爲UserControls,Pages ...但不在應用程序上,因爲它們在控制庫中是未知的。

您控制通用XAML不應該被存放在App.xaml中的資源,但在主題/ Generic.xaml文件。

User Control Library vs Custom Control library

+0

fantasticfix,感謝您的答覆,但它不是可重複使用的控件這樣一個瘦弱的小WPF應用程序。我想爲特定應用程序(例如按鈕寬度)設置默認樣式,我知道爲整個應用程序執行此操作的唯一方法是在app.xaml中指定此類型,或者讓app.xaml引用另一個資源字典。但是,調用app.run而不是「標準」方式似乎會阻止資源的工作。 – sturdytree 2011-04-27 17:47:36

相關問題