原創|使用教程|編輯:我只采一朵|2018-01-09 13:35:08.000|閱讀 1407 次
概述:今天我將向你展示,如何在WPF中使用針對WinForms應用程序設計的FastReport.Net控件。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
今天我將向你展示,如何在WPF中使用針對WinForms應用程序設計的FastReport.Net控件。其實一切都很簡單。WPF應用程序允許你使用WinForms控件,且WinForms應用程序允許你使用WPF控件。針對跨平臺的控件使用,我們有特殊組件 - hosts。具體而言,特殊組件WindowsFormsHost,可以幫助你在WPF中顯示WinForms控件。
我們來創建一個WPF項目。首先,將FastReport.dll添加到引用。
從工具箱中拖動按鈕組件到主表單上。在屬性檢查器中,將其標題更改為“運行報表設計器”:
然后創建另一個按鈕,標題文本為“運行報表預覽”:
每個按鈕將啟動一個單獨的表單。在第一張表單中,我們將放置設計器組件,第二張表單中放置預覽組件。添加一個新表單(窗口)。你可以通過右鍵單擊Solution Explorer中的項目名稱來執行此操作。在上下文菜單中選擇Add-> Window。我們將窗口命名為“Designer.xaml”。
以同樣的方式,我們添加另一個窗口。把它叫做“Preview.xaml”。
轉到Designer.xaml。將WindowsFormsHost組件從工具箱拖到窗體中。
它看起來是這樣:
你必須在屬性檢查器中指定此組件的名稱。最初,它并沒有默認定義的名稱。我將它命名為“WindowsFormsHost1”。
在Studio的底部,你可以看到用戶表單模板的xml代碼。請注意添加的組件代碼:
… <Grid> <WindowsFormsHost x:Name="WindowsFornsHost1" HorizontalAlignment="Left" Height="100" Margin="10,10,0,0" VerticalAlignment="Top" Width="100"/> </Grid> …
如你所見,很多屬性負責表單上組件的位置。讓我們刪除標簽WindowsFormsHost中的所有屬性,除了:
<Grid> <WindowsFormsHost x:Name="WindowsFornsHost1" /> </Grid>
現在,組件將被拉伸到窗口的寬度和高度:
打開窗口的代碼編輯器(右鍵單擊表單 - ViewCode)。
添加FastReport庫:
using FastReport;
在這個類中,我們創建一個DesignerControl對象的實例并將其分配給WindowsFormsHost1:
public partial class Designer : Window { FastReport.Design.StandardDesigner.DesignerControl designer = new FastReport.Design.StandardDesigner.DesignerControl(); Report report1 = new Report(); public Designer() { InitializeComponent(); designer.Report = report1; designer.RefreshLayout(); WindowsFormsHost1.Child = designer; } } }
因為設計器應該顯示報表,即使它是空的,我們還要創建一個報表對象的實例,并將其加載到設計器中。然后我們更新設計器并將設計器對象分配給我們的host。
轉到Preview.xaml窗口。和上一個窗口一樣,我們將WindowsFormsHost組件添加到窗體中,并將??其命名為“WindowsFormsHost2”。我們刪除負責組件大小和位置的屬性。打開這個窗口的代碼編輯器。
添加FastReport庫:
using FastReport;
在該類中,創建一個PrewiewControl對象的實例和一個報表對象的實例。我們需要加載一個現有的報表,并將創建的預覽分配給報表對象。
public partial class Preview : Window { FastReport.Preview.PreviewControl prew = new FastReport.Preview.PreviewControl(); Report report = new Report(); public Preview() { InitializeComponent(); report.Load(@"J:\Program Files (x86)\FastReports\FastReport.Net\Demos\Reports\Text.frx"); report.Preview = prew; report.Prepare(); report.ShowPrepared(); WindowsFormsHost2.Child = prew; }
在為報表分配預覽后,我們構建報表并顯示它。在最后一行代碼中,我們將預覽對象分配給host。
應用程序已經準備就緒。我們返回最開始帶有按鈕的主表單。選擇第一個按鈕。在屬性檢查器中,切換到事件。并通過雙擊創建Click事件:
我們添加簡單的代碼:
private void button_Click(object sender, RoutedEventArgs e) { Designer dsg = new Designer(); dsg.Show(); }
這里我們創建一個設計器窗口的實例并顯示它。同樣,我們為第二個按鈕創建一個Click事件:
private void button1_Click(object sender, RoutedEventArgs e) { Preview prew = new Preview(); prew.Show(); }
創建預覽窗口的實例并顯示它。運行程序:
按第一個按鈕,會打開一個設計器窗口:
我們關閉它,然后按下第二個按鈕,以預覽模式獲取報表:
就是這樣。多虧有WindowsFormsHost,一切都非常簡單。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn