Winform和WPF下如何調(diào)用ComponentOne的控件

這篇文章主要為大家展示了“Winform和WPF下如何調(diào)用ComponentOne的控件”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Winform和WPF下如何調(diào)用ComponentOne的控件”這篇文章吧。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供達(dá)茂旗企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站制作、H5場(chǎng)景定制、小程序制作等業(yè)務(wù)。10年已為達(dá)茂旗眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

Step 1

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

  1. 添加兩個(gè)引用:WindowsFormsIntegration.dll(負(fù)責(zé)整合WPF和Windows)、System.Windows.Forms.

  2. 在 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è)示例:通過(guò)微軟原生態(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è)容器里面。

Setp2

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

  1. Winform下FlexReport的模板

  2. 相關(guān)引用

Winform和WPF下如何調(diào)用ComponentOne的控件

注意:這里面的引用是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>

Setp3

我們?cè)诤笈_(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)的問(wèn)題,如何把Winform 的授權(quán)在WPF下注冊(cè),其實(shí)很簡(jiǎn)單,因?yàn)?.NET 的license機(jī)制一樣,我們只需用同樣的方式去注冊(cè)控件的license ,不過(guò)這里推薦手動(dòng)注冊(cè),這很重要,因?yàn)橐徊恍⌒?,就?huì)報(bào)lc.exe=-1的錯(cuò)誤

這里我們都用到了

  • C1FlexViewerPane

  • C1FlexReport

所以我們?cè)趌icense文件中寫如下注冊(cè)信息

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)行業(yè)資訊頻道!

分享題目:Winform和WPF下如何調(diào)用ComponentOne的控件
文章鏈接:http://bm7419.com/article26/pceccg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司網(wǎng)站營(yíng)銷、微信小程序ChatGPT、靜態(tài)網(wǎng)站、企業(yè)建站

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)