Category Archives: WPF

Crystal Report Viewer in WPF – 如何在WPF 上使用Crystal Report Viewer

今天..公司的同事突然叫我寫一個管理我們研究/開發的程式…
[主要都是用來記下 所做過的Task]
由於他說是Urgent的關係..所以我便用了WinForm來開發..
到有多點空閒時間時才用WPF 寫…
[主要是因為自己對WPF 不太熟練的關係]
第一個難題是..怎樣可以把Crystal Report Viewer 放進WPF User Control 內..
我使用的是 Crystal Report X1 R2…比較舊..所以不太清楚能不能支援..

做了一些research之後..終於找到解決方法了

解決方法:
首先我們要為我們的WPF project加上一些和WinForm有關的 assemible
他們是

之後當然要加入Crystal Report的 assemible

你需要加入以下參考
Crystal Report for .Net Framework
CrystalDecisions.CrystakReports.Engine
CrystalDecisions.ReportSource
CrystalDecisions.Shared
CrystalDecisions.VSDesigner
CrystalDecisions.Windows.Forms

之後在User Control 的加入Namespace的位置的地方加入 Crystal Report的參考

最後在User Control上加入以下的程式碼便可以了
我建立了一個簡單的Crystal Report 用來示範這個User Control真的可以顯示Crystal Report的內容的
之後在Loaded Event上加入 以下的程式碼去 Load 這個Report到Crystal Report Viewer上

C Sharp

CrystalReportViewer rptViewer = new CrystalReportViewer();
WindowsFormsHost host = new WindowsFormsHost();
rptViewer.ReportSource = report;
host.Child = rptViewer;
reportGrid.Children.Add(host); //Add report viewer in WPF Grid

Hope you find it useful

How to show Message Box in WPF – 在WPF 上顯示 MessageBox

今天嘗試在WPF的中彈出使用MessageBox.Show() 來彈出一個Message Box出一個來問用戶是否執行之後的動作..
誰不知 當我嘗試使用MessageBox.Show() 時… 出現了Error Message

經過一段時間的Research 發現要使用System.Windowsnamespace 才可以使用MesssageBox.Show這個程式碼
溫馨提示:
如果你的程式上有很多Windows 的話.. 可以在第一個Argument 上轉入 “Application.Current.MainWindows” 來指定 他是從 MainWindows上彈出
System.Windows.MessageBox.Show Signature
E.G.

System.Windows.MessageBox.Show(App.Current.MainWindow, "Pop up Message", "Windows Title ",MessageBoxButton.YesNo, MessageBoxImage.Information, MessageBoxResult.Yes );

System.Windows.MessageBox.Show(Application.Current.MainWindow, "你是否繼續執行下面的動作", "Are You Sure", MessageBoxButton.YesNo);

WPF Popup Message via MessageBox.Show
Hope you find it useful