程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#發現之旅第七講 C#圖形開發高級篇(1)

C#發現之旅第七講 C#圖形開發高級篇(1)

編輯:關於C語言

為了讓大家更深入的了解和使用C#,我們將開始這一系列的主題為“C#發現之旅 ”的技術講座。考慮到各位大多是進行WEB數據庫開發的,而所謂發現就是發現我們所 不熟悉的領域,因此本系列講座內容將是C#在WEB數據庫開發以外的應用。目前規劃的主要內 容是圖形開發和XML開發,並計劃編排了多個課程。在未來的C#發現之旅中,我們按照由淺入 深,循序漸進的步驟,一起探索和發現C#的其他未知的領域,更深入的理解和掌握使用C#進 行軟件開發,拓寬我們的視野,增強我們的軟件開發綜合能力。

本系列課程配套的演示代碼,其中的 PenMarkLib.zip 就是本課程的演示代碼。

課程說明

經過以前幾次課程,相信 大家對圖形編程有所了解了,並能自己動手開發一些簡單的圖形軟件。今天我們就在以前圖 形開發課程的基礎上演示使用C#開發一個能保存簽名軌跡的圖形軟件。

這個軟件的用 戶界面如圖

功能需求

本軟件的功能需求如下

用戶能操作來開始一次簽名和結束 簽名。

正在簽名時,用戶按下鼠標按鍵開始繪制一條線條,松開鼠標按鍵結束繪制一 個線條。

一個簽名可以包含多個不相連的線條。

可保存簽名信息到XML文檔, 也可以從XML文檔加載簽名信息。

可以生成包含簽名圖形的圖片文件。

軟件設 計

實現能實用的簽名功能是很復雜的,則此簡化了一些功能,目標軟件僅操作簽名信 息,不涉及簽名時的文檔。於是本軟件的設計如下

文檔對象

實現復雜的圖形 軟件首先是設計文檔對象模型,使得內存中的一個個對象能包含要顯示的數據,此處需要設 計一套對象模型來包含簽名信息。

經過分析,可以知道,一個文檔中可以包含若干個 簽名,一個簽名包含若干個線條,而一個線條包含若干個點,線條中的點相互連接來形成線 條,而同一個簽名中的線條是不相連的,但可以相交。

因此我們可以設計出如下的文 檔對象模型

點坐標數據列表PointArrayList ,該對象用於存放多個點坐標數據,在 這裡表示一條任意線段,用戶繪制線條時程序可以使用該對象的Add方法增加點數據。

PenMarkInfo 對象表示一個簽名,該對象定義了簽名的時間,線條的顏色,線條寬度 ,還包含了若干個PointArrayList對象來保存簽名軌跡線條定位信息。

PenMarkInfoDocument 對象表示整體的簽名信息對象,該對象定義了多個簽名對象, 還定義了加載和保存文檔數據的方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved