91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Winform和WPF下如何調用ComponentOne的控件

發布時間:2021-11-30 16:37:20 來源:億速云 閱讀:307 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“Winform和WPF下如何調用ComponentOne的控件”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Winform和WPF下如何調用ComponentOne的控件”這篇文章吧。

Step 1

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

  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里面的微軟的原生態控件,所以在用到ComponentOne時,可以不引用它。

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

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

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

Setp2

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

  1. Winform下FlexReport的模板

  2. 相關引用

Winform和WPF下如何調用ComponentOne的控件

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

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

在布局中添加可供報表預覽的控件

<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平臺下的

到這一步,我們工作完成了一大半,還差最后一步點石成金的步驟。很多人以為在這就結束了,但是我們要考慮 ComponentOne License 授權的問題,如何把Winform 的授權在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

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

以上是“Winform和WPF下如何調用ComponentOne的控件”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临猗县| 闵行区| 梅州市| 三门峡市| 云浮市| 苍南县| 固阳县| 大安市| 岱山县| 麦盖提县| 曲阜市| 澎湖县| 庆云县| 红原县| 临汾市| 武功县| 阿拉善盟| 弥渡县| 襄汾县| 绥芬河市| 化州市| 高陵县| 米脂县| 岳普湖县| 海城市| 锡林郭勒盟| 朔州市| 满洲里市| 北京市| 屯留县| 甘洛县| 博白县| 衡东县| 博野县| 广安市| 句容市| 噶尔县| 乐平市| 略阳县| 大庆市| 东莞市|