用WPF做報表控制元件(二)
總體結構
首先我們看一下報表控制元件最終的效果:
我們可以把報表看成是三部分,分別是表頭,表主體和表尾。如果我們不使用WPF自帶的DataGrid,自己一根線一根線去畫的話,這個表格估計也是大工程了。所以一開始,我們就考慮使用DataGrid。但DataGrid怎麼做出如圖所示的表頭和表尾呢?好像根本就不可能啊。嘗試過很多方法之後,我必須承認,真的不可能。但我想到了另外一種方法。可以做一個自定義控制元件,分成三行。第一行是一個Grid,多少行多少列都好控制。第二行是主體,明顯就是DataGrid了。第三行也可以用Grid做,我們使用了StackPanel,關係都不大,看具體需求。
這樣的設計,可能你一看就會看出一些問題來,或許還會覺得行不通。但實際上,報表控制元件基本解決了這些問題。我們將在後面的章節講解每部分的開發方法。
相關推薦
用WPF做報表控制元件(二)
總體結構 首先我們看一下報表控制元件最終的效果: 我們可以把報表看成是三部分,分別是表頭,表主體和表尾。如果我們不使用WPF自帶的DataGrid,自己一根線一根線去畫的話,這個表格估計也是大工程了。所以一開始,我們就考慮使用DataGrid。但DataGrid怎麼做出如圖所示的表頭和
用WPF做報表控制元件(四)
表主體和表尾 表主體並沒有什麼難點,就是一個DataGrid,往裡面填充資料即可。表尾顯示的是一些統計資料,如平均值、最大值、最小值、累計值等。在這一部分的開發裡面,最複雜的是水平滾動條的問題。 一開始,我考慮用一個ScrollViewer把整個報表控制元件包起來。但當我填充大量資料的時候,
用WPF做報表控制元件(三)
表頭 在上一節裡面,我們已經知道,表頭其實是一個Grid。那麼有兩個最需要解決的問題: (1)表頭列寬變化時,主體和表尾的列寬怎麼跟著變化。 (2)如何初始化這個複雜的表頭。 第一個問題其實並不難,在Grid每一列右側,都加入一個GridSplitter,然後新增DragDelta和
用WPF做報表控制元件(一)
DataGrid是WPF自帶的報表控制元件,但其功能簡單,很多時候無法滿足我們的需求。第三方庫(如DevExpress)報表功能強大,但一方面資源消耗比較多,另一方面效能也較差,在一些比較差的電腦上執行很吃力。我之前就嘗試過在工控機上使用DevExpress,每次啟動都需要等幾秒甚至十幾秒半分鐘,體
用WPF做報表控制元件(六)
報表列印 前面的幾項功能,我做的控制元件都比DevExpress的報表控制元件效能要好,唯獨這個列印要差一些。但這也能用,畢竟列印的功能使用不多,四十頁紙之內速度還是可以的。 報表控制元件使用FlowDocument來列印。我們需要把資料重新填充到FlowDocument裡面。如下面的程式碼
用WPF做報表控制元件(五)
匯出Excel表格 匯出Excel表格可以使用Office的外掛,但我們現場用的電腦不一定是裝過Office的,所以也就不能用Office的外掛。一開始,我採用了csv格式的檔案,直接把字尾改成了xls。這樣Excel當然是會開啟的。但csv格式太過簡單,開啟的時候往往不怎麼好看。後來終於找到了
WPF -- 自定義控制元件 (UserControl)(二 上)
在這裡我們將將打造一個UserControl(使用者控制元件)來逐步講解如何在WPF中自定義控制元件,並將WPF的一些新特性引入到自定義控制元件中來. 我們製作了一個帶語音報時功能的鐘表控制元件, 效果如下: 在VS中右鍵單擊你的專案,點選"新增新專案",在出現的選擇列表中選
WPF 控制元件(二)ListView ListView+GridView+GridViewColumn+DisplayMemberBinding多列繫結資料的用法
1、設定列表頭 ColumnHeaderContainerStyle用來設定整個列表頭的字型及其背景顏色等等。 2、設定列表內容 ItemContainerStyle用來設定列表內容的字型及其背景顏色等等。 此外,Padding可以設定邊距。 列表
WPF自定義控制元件(一)の控制元件分類
原文: WPF自定義控制元件(一)の控制元件分類 一、什麼是控制元件(Controls) 控制元件是指對資料和方法的封裝。控制元件可以有自己的屬性和方法,其中屬性是控制元件資料的簡單訪問者,方法則是控制元件的一些簡單而可見的功能、控制元件建
WPF 曲線圖表控制元件(自制)(一)
原文: WPF 曲線圖表控制元件(自制)(一) 由於公司需要所以自寫了一個簡單的曲線圖表控制元件,在此分享。 先上一張效果圖 1.介面xaml X軸和Y軸用 2個line物件寫死在xaml上 外部用一個Grid包裹起來,然後X軸的寬度,和Y
WPF自定義控制元件(四)の自定義控制元件
原文: WPF自定義控制元件(四)の自定義控制元件 在實際工作中,WPF提供的控制元件並不能完全滿足不同的設計需求。這時,需要我們設計自定義控制元件。 這裡LZ總結一些自己的思路,特性如下: Coupling UITemplate Behaviour Function Package
WPF自定義控制元件(五)の使用者控制元件(完結)
原文: WPF自定義控制元件(五)の使用者控制元件(完結) 使用者控制元件,WPF中是繼承自UserControl的控制元件,我們可以在裡面融合我們的業務邏輯。 示例:(一個厭惡選擇的使用者控制元件) 後端: using iMicClassBase; using iMicClassBase.B
仿美團下拉重新整理控制元件(二)
如果想學習更多進階知識,可以關注我的微信公眾號:Android小菜。也可以直接掃描二維碼關注:轉載本專欄文章,請註明出處,尊重原創 。文章部落格地址:道龍的部落格本篇是實現仿美團下拉重新整理控制元件的第二篇,第一篇見:仿美團下拉重新整理控制元件(一)文字最終實現效果如下:由於
編寫Qt Designer自定義控制元件(二)——編寫自定義控制元件介面
既然是控制元件,就應該有介面,預設生成的控制元件類只是一個繼承了QWidget的類,如下: #ifndef LOGLATEDIT_H #define LOGLATEDIT_H #include <QWidget> class LogLat
ASP.NET AJAX入門系列(5):使用UpdatePanel控制元件(二)
{ if (String.IsNullOrEmpty(FirstNameTextBox.Text) || String.IsNullOrEmpty(LastNameTextBox.Text)) { return; } int emplo
WPF -- 自定義控制元件 (概述)(一)
CustomControl, 其開發出來的控制元件才真正具有WPF風格,其對模板樣式有著很好的支援,這是因為打造CustomControl時做到了邏輯程式碼與外觀相分離,即使換上一套完全不同的視覺樹其同樣能很好的工作,就像WPF內建的控制元件一樣.在使用Visual Studio打造控制元件時,UserCon
Android自定義控制元件(二)-給自定義控制元件新增事件
在這篇部落格中主要講解給Android自定義控制元件新增點選事件,實現可以按住百分比圓圈在螢幕上進行拖動圓圈的功能。分兩部分講,第一部分是獲取自定義控制元件的座標,第二部分是重新繪製控制元件。 第一部分:獲取自定義控制元件座標 首先看一張圖,這是自定義控制元件中獲
循序漸進:用python做金融量化分析(二)一條移動平均線策略系統建立
在前言中我們講了些基礎知識,這一節正式開始從最簡單的移動平均線講起,移動平均線是在趨勢行情中應用最廣泛的策略,移動平均線有簡單算術平均線,指數平均線,加權平均線,還可以分為一條均線,兩條均線,三條均線策略等等,在這裡我們
Android UI佈局與控制元件(二)
十三.TextView常用屬性 android:autoLink :設定是否當文字為URL連結/email/電話號碼/map時,文字顯示為可點選的連結。可選值(none/web /email/phone/map/all) android:autoText :如果設定,將自動執行輸入值的拼寫糾正。此處
自定義控制元件(二)Paint,Canvas 基礎用法
本篇部落格繼續學習 Paint 和 Canvas 的基礎用法,上一篇部落格學習了基礎API使用( 基礎幾何圖形,Path 路徑 ),接下來學習 繪製文字 和 繪製圖片 上一篇文章,沒看的有必要先了解一下: 自定義控制元件(一)Paint,Canvas 基礎用