這篇文章主要為大家展示了“Winform和WPF下如何調(diào)用ComponentOne的控件”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Winform和WPF下如何調(diào)用ComponentOne的控件”這篇文章吧。
成都創(chuàng)新互聯(lián)公司專注于冷水江企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),商城建設(shè)。冷水江網(wǎng)站建設(shè)公司,為冷水江等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)首先,我們還是把兩個(gè)平臺(tái)的基本通信通道搭建起來,很簡單,網(wǎng)上有很多步驟,總結(jié)起來主要分三步:
添加兩個(gè)引用:WindowsFormsIntegration.dll(負(fù)責(zé)整合WPF和Windows)、System.Windows.Forms.
在 XAML文件中添加兩個(gè)引用(粗體部分):
<Window x:Class="CrossBowDemo.MainWindow"xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"xmlns:wf ="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="Hosting Windows Forms Control In WPF"Height="300"Width="650"ResizeMode="NoResize"Loaded="WindowLoadedHandler"> < /Window>
解釋一下,這段代碼真正起作用的是這個(gè)引用WindowsFormsIntegration.dll,而這個(gè)引用System.Windows.Forms 指的是Winform里面的微軟的原生態(tài)控件,所以在用到ComponentOne時(shí),可以不引用它。
我們先看一個(gè)示例:通過微軟原生態(tài)控件在WPF中使用Winform,代碼如下:
<wfi:WindowsFormsHost> <wf:DataGridView x:Name="Dg" Dock="Fill" SelectionMode="FullRowSelect"> </wf:DataGridView> </wfi:WindowsFormsHost>
WindowsFormsHost其實(shí)是Winform在WPF的容器,所以Winform的控件顯示都要在這個(gè)容器里面。
上面我們說了,我們以FlexReport為介質(zhì)進(jìn)行通信,那我們需要準(zhǔn)備的幾個(gè)小步驟:
Winform下FlexReport的模板
相關(guān)引用
注意:這里面的引用是Winform的引用。同樣,我們需要在xmal中引用:
xmlns:cc11="clr-namespace:C1.Win.FlexViewer;assembly=C1.Win.FlexViewer.4"
在布局中添加可供報(bào)表預(yù)覽的控件
<Grid> <wfi:WindowsFormsHost> <cc11:C1FlexViewerPane x:Name="flexViewerPane" ></cc11:C1FlexViewerPane> </wfi:WindowsFormsHost> </Grid>
我們在后臺(tái)加載報(bào)表
private C1FlexReport _report; public Window1() { InitializeComponent(); _report = new C1FlexReport(); // load report definition from resources Assembly asm = Assembly.GetExecutingAssembly(); using (Stream stream = asm.GetManifestResourceStream("WpfApp1.Resources.FlexCommonTasks.flxr")) _report.Load(stream, "Chart2D"); // assign report to the preview pane flexViewerPane.DocumentSource = null; flexViewerPane.DocumentSource = _report; }
注:切記,這里面的報(bào)表是Winform平臺(tái)下的
到這一步,我們工作完成了一大半,還差最后一步點(diǎn)石成金的步驟。很多人以為在這就結(jié)束了,但是我們要考慮 ComponentOne License 授權(quán)的問題,如何把Winform 的授權(quán)在WPF下注冊,其實(shí)很簡單,因?yàn)?.NET 的license機(jī)制一樣,我們只需用同樣的方式去注冊控件的license ,不過這里推薦手動(dòng)注冊,這很重要,因?yàn)橐徊恍⌒?,就?huì)報(bào)lc.exe=-1的錯(cuò)誤
這里我們都用到了
C1FlexViewerPane
C1FlexReport
所以我們在license文件中寫如下注冊信息
C1.Win.FlexReport.C1FlexReport, C1.Win.FlexReport.4 C1.Win.FlexViewer.C1FlexViewerPane, C1.Win.FlexViewer.4
至此,我們就大功告成了。
以上是“Winform和WPF下如何調(diào)用ComponentOne的控件”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
當(dāng)前標(biāo)題:Winform和WPF下如何調(diào)用ComponentOne的控件-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://jinyejixie.com/article38/jshsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、動(dòng)態(tài)網(wǎng)站、服務(wù)器托管、域名注冊、網(wǎng)站制作、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容