2012-03-08 23 views
0

我有一個通過COM從第三方RAD應用程序(Omnis Studio)調用的類庫,該庫提供.NET功能,如SQL/Web服務橋接。我不得不添加更多的方法來顯示一個WPF表單,它將事件觸發回原始應用程序。加載Microsoft.Windows.Common-運行時控件

這一切都正常工作,該項目必須是類庫,不能是一個可執行文件,這意味着我不能在應用程序選項選項卡中選擇該項目的清單。我現在面臨的主要問題是,如果在我的清單文件中沒有下面的XML片段,我無法獲得現代的Windows對話框按鈕,因此消息框中的按鈕看起來有些過時。

<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) --> 

<dependentAssembly> 
    <assemblyIdentity 
     type="win32" 
     name="Microsoft.Windows.Common-Controls" 
     version="6.0.0.0" 
     processorArchitecture="*" 
     publicKeyToken="6595b64144ccf1df" 
     language="*" 
    /> 
</dependentAssembly> 

那麼,有沒有辦法,我可以從具有清單文件中的那些行達到同樣的效果,但在入口點類的定製代碼執行圖書館?

感謝

保羅

編輯

要爲Rahmound的評論添加澄清:

我不認爲你明白的問題。首先,我沒有提到這是一個Windows窗體應用程序,項目中只有零個Windows窗體組件引用,只有WPF表示程序集。該項目必須是類庫,因爲THIRD應用程序(這是一個C++非託管應用程序)只能使用.NET類庫,所以需要顯示一個非常自定義的表單,這可以在當前項目中實現,而我選擇WPF是因爲這是我的大部分桌面應用程序技能所在,它適合WPF的數據綁定模型。我們對最終結果感到非常滿意,唯一的問題是我的應用程序需要使用XP +主題Windows控件,如果上面的部分不在app.manifest中,那麼消息框使用舊式OK,取消按鈕不符合我在我的應用程序中的所有其他按鈕。

This question explains the message box problem

我需要的是能夠實現同樣的事情,但不具有嵌入式app.manifest。

+0

當您的應用程序的其餘部分是Windows窗體時,爲什麼使用WPF?此外,如果你需要一個「類庫」,你爲什麼使用創建一個WPF應用程序開始?我應該補充說,你可以在Windows窗體中託管WPF內容。 – 2012-03-08 17:38:04

+0

@Ramhound我追加到我的問題進一步的信息。 – 2012-03-09 08:58:40

+0

主EXE中的清單選擇所有應用程序窗口中使用的視覺樣式。包括你的。這是WPF應用程序中的一個奇怪問題,樣式是它的中間名。創建你自己的MessageBox,我想。 – 2012-03-09 09:15:34

回答

0

我無法解決這個問題,時間不多了,繼Hans的建議之後,我最終使用了Extended WPF Toolkit,因爲我也想使用其他控件,例如ColourPicker。