ComponentOne使用技巧——從Winform穿越到W-創(chuàng)新互聯(lián)

概述

我們提供的服務(wù)有:成都網(wǎng)站制作、網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、平遠ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的平遠網(wǎng)站制作公司

WPF 和 Winform 是兩個單獨的平臺,但二者又都是基于 .NET 4.0 以上版本開發(fā)的,所以很多.NET開發(fā)人員就開始研究如何在WPF中使用Winform。微軟已經(jīng)架設(shè)了兩個開發(fā)平臺的之間的通信橋梁,目前為止二者相互轉(zhuǎn)換使用已經(jīng)相當成熟了,今天主要給大家講講如何在這兩個平臺下調(diào)用 ComponentOne 的控件。

本文主要用 FlexReport .NET報表控件,作為介質(zhì)進行兩個平臺的鏈接

Step 1

首先,我們還是把兩個平臺的基本通信通道搭建起來,很簡單,網(wǎng)上有很多步驟,總結(jié)起來主要分三步:

1.添加兩個引用:WindowsFormsIntegration.dll(負責整合WPF和Windows)、System.Windows.Forms.

2.在 XAML文件中添加兩個引用(粗體部分):

<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>

解釋一下,這段代碼真正起作用的是這個引用WindowsFormsIntegration.dll,而這個引用System.Windows.Forms 指的是Winform里面的微軟的原生態(tài)控件,所以在用到ComponentOne時,可以不引用它。

我們先看一個示例:通過微軟原生態(tài)控件在WPF中使用Winform,代碼如下:

<wfi:WindowsFormsHost>         <wf:DataGridView x:Name="Dg"  Dock="Fill" SelectionMode="FullRowSelect">                     </wf:DataGridView>     </wfi:WindowsFormsHost>

WindowsFormsHost其實是Winform在WPF的容器,所以Winform的控件顯示都要在這個容器里面。

Setp2

上面我們說了,我們以FlexReport為介質(zhì)進行通信,那我們需要準備的幾個小步驟:

1.Winform下FlexReport的模板

2.相關(guān)引用

ComponentOne使用技巧——從Winform穿越到W

注意:這里面的引用是Winform的引用。同樣,我們需要在xmal中引用:

xmlns:cc11="clr-namespace:C1.Win.FlexViewer;assembly=C1.Win.FlexViewer.4"

在布局中添加可供報表預(yù)覽的控件

<Grid>         <wfi:WindowsFormsHost>             <cc11:C1FlexViewerPane   x:Name="flexViewerPane"  ></cc11:C1FlexViewerPane>         </wfi:WindowsFormsHost>     </Grid>

Setp3

我們在后臺加載報表

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;     }

注:切記,這里面的報表是Winform平臺下的

到這一步,我們工作完成了一大半,還差最后一步點石成金的步驟。很多人以為在這就結(jié)束了,但是我們要考慮 ComponentOne License 授權(quán)的問題,如何把Winform 的授權(quán)在WPF下注冊,其實很簡單,因為 .NET 的license機制一樣,我們只需用同樣的方式去注冊控件的license ,不過這里推薦手動注冊,這很重要,因為一不小心,就會報lc.exe=-1的錯誤

這里我們都用到了

  • C1FlexViewerPane

  • C1FlexReport

所以我們在license文件中寫如下注冊信息

C1.Win.FlexReport.C1FlexReport, C1.Win.FlexReport.4 C1.Win.FlexViewer.C1FlexViewerPane, C1.Win.FlexViewer.4

至此,我們就大功告成了。

示例×××

本文中的示例源碼,請點擊此處下載

關(guān)于葡萄城:

賦能開發(fā)者!葡萄城公司成立于 1980 年,是全球領(lǐng)先的集開發(fā)工具、商業(yè)智能解決方案、管理系統(tǒng)設(shè)計工具于一身的軟件和服務(wù)提供商。西安葡萄城是其在中國的分支機構(gòu),面向全球市場提供軟件研發(fā)服務(wù),并為中國企業(yè)的信息化提供國際先進的開發(fā)工具、軟件和研發(fā)咨詢服務(wù)。葡萄城的控件和軟件產(chǎn)品在國內(nèi)外屢獲殊榮,在全球被數(shù)十萬家企業(yè)、學(xué)校和政府機構(gòu)廣泛應(yīng)用。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

標題名稱:ComponentOne使用技巧——從Winform穿越到W-創(chuàng)新互聯(lián)
文章地址:http://bm7419.com/article14/dicdge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、品牌網(wǎng)站制作、自適應(yīng)網(wǎng)站、云服務(wù)器、網(wǎng)站策劃、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作