這篇文章主要為大家展示了“Winform和WPF下如何調用ComponentOne的控件”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Winform和WPF下如何調用ComponentOne的控件”這篇文章吧。
成都創新互聯是一家專業提供達茂旗企業網站建設,專注與成都做網站、成都網站制作、H5場景定制、小程序制作等業務。10年已為達茂旗眾多企業、政府機構等服務。創新互聯專業網站設計公司優惠進行中。
首先,我們還是把兩個平臺的基本通信通道搭建起來,很簡單,網上有很多步驟,總結起來主要分三步:
添加兩個引用:WindowsFormsIntegration.dll(負責整合WPF和Windows)、System.Windows.Forms.
在 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的控件顯示都要在這個容器里面。
上面我們說了,我們以FlexReport為介質進行通信,那我們需要準備的幾個小步驟:
Winform下FlexReport的模板
相關引用

注意:這里面的引用是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>
我們在后臺加載報表
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的控件”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!
分享題目:Winform和WPF下如何調用ComponentOne的控件
文章鏈接:http://www.yijiale78.com/article26/pceccg.html
成都網站建設公司_創新互聯,為您提供建站公司、網站營銷、微信小程序、ChatGPT、靜態網站、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯