最近需要包裝產品,需要將系統的界面進行一下改造,也就所謂的整容吧(整容是很危險的事情哦,聽說最近又有人Over了),不過風險雖然存在,但是為了產品更好賣,還是得整容呀,大不了請個好的醫生咯。最近在網上查找了很多方法,換膚現在比較常用,不過發現基於WPF來實現更好,再怎么說也是微軟下一代的所支持的界面庫。
應該說用WPF開發還是比較簡單的,特別是業務邏輯代碼能和界面封開,這是相當O的事情了。項目時間比較緊迫,對產品的整容最好是不要涉及到肝臟了。為此,我決定還是使用調用原有的dll和ocx來實現吧,可接下來調用ocx怎么改呢,網上介紹也是迷迷糊糊的,今天弄了一下終於將ocx加入到wpf中,步驟如下:
需要先使用regsvr32命令 注冊ocx控件。注冊完成之后進行如下轉換:
1)借用工具將ocx進行轉換,我使用了aximp.exe (
http://msdn.microsoft.com/zh-cn/library/ms748870.aspx) 。打開vs2010下打開命令行。
輸入:
aximp ocx的路徑 /source (這里加入/source主要是為了生成c#的調用類,用的時候將此類加入到vs工程中即可)
運行后將會生成AxXXXLib.dll、XXXLib.dll和
AxXXXLib.cs三個文件。
2)將
AxXXXLib.dll、XXXLib.dll通過一下方式加入到工程中
“右鍵”點擊工程-<Add Reference
選擇第一步中生成的AxXXXLib.dll、XXXLib.dll,點擊"OK"就完成了。
3)在初始化函數中添加以下代碼
public MainWindow()
{
InitializeComponent();
// 創建 host 對象
System.Windows.Forms.Integration.WindowsFormsHost host = new System.Windows.Forms.Integration.WindowsFormsHost();
// 創建OCX的對象
AxXXXLib axXXX = new
AxXXXLib();
//開始初始化ocx對象
axXXX.BeginInit();
host.Child = axXXX ;
// 將對象加入到面板中
dockPan.Children.Add(host);
// 結束初始化
axXXX.EndInit();
}
在結束初始化之后再進行其它操作!
這樣OCX就加入到WPF界面中了。
轉自:
http://blog.csdn.net/lovesw97/article/details/6576360
參考資料: