標籤:
一、註冊OCX並利用工具產生dll
@echo offcolor a::FailedREGSVR32 /S /I "MSCOMCTL.OCX"if exist %windir%\SysWOW64 (.\AxImp.exe "C:\Windows\SysWOW64\MSCOMCTL.ocx" /out:.\MSCOMCTL64.dll ) else ( .\AxImp.exe "C:\Windows\System32\MSCOMCTL.ocx" /out:.\MSCOMCTL32.dll )pause
二、添加引用(OCX產生的dll)並編碼使用
項目引用:WindowsFormsIntegration.dll,System.Windows.Forms.dll
xaml代碼使用<Window x:Class="wpf_ocx2dll.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 添加命名空間 xmlns:ms="clr-namespace:MSComctlLib;assembly=MSComctlLib" Title="MainWindow" Height="350" Width="525"> <Grid> <WindowsFormsHost x:Name="host"> <ElementHost> <!--<ms:Button Caption="test" />--> </ElementHost> </WindowsFormsHost> </Grid></Window>
或cs代碼使用
MSComctlLib.IButton btn = new MSComctlLib.Button(); public MainWindow() { InitializeComponent(); try { ((System.ComponentModel.ISupportInitialize)btn).BeginInit(); //host.Child =btn; ((System.ComponentModel.ISupportInitialize)btn).EndInit(); } catch (Exception ex) { } }
所用工具:http://pan.baidu.com/s/1i4AIBxr
C#利用AxImp工具在WPF中使用OCX控制項