版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Windows8平板
黑板畫詳細(xì)設(shè)計說明書
一、公共類的定義2
1.1黑板頁類2
1.2黑板畫類2
1.3頁面類的應(yīng)用3
1.4全局會話5
二、其他類的設(shè)計6
2.1角度計算類6
2.2黑板頁類6
三、主程序的設(shè)計8
3.1變量(屬性)的設(shè)計9
3.2連接SkyDrive函數(shù)10
3.3設(shè)置畫筆的參數(shù)10
3.4界面導(dǎo)航函數(shù)的設(shè)計10
3.5繪圖函數(shù)11
3.6構(gòu)造函數(shù)13
3.7填充字的大小函數(shù)13
3.8設(shè)置畫筆顏色函數(shù)14
、公共類的定義
1.1黑板頁類
BlackBoardPage一塊黑板頁類,其功能如下:增加一個幾何圖形路勁、刪除最
后一個路徑、刪除最后一個路徑、刪除所有路徑、在容器中顯示內(nèi)容CanvasorGrid、
圖形路徑的數(shù)量。
主要函數(shù)如下:
publicvoidAddOnePath(Windows.UI.Xaml.Shapes.Pathpath)//增加一個
幾何圖形路勁:path包含了幾何圖形
publicvoidDeleteLastPathO〃刪除最后一個路徑
publicboolDeleteOnePath(Windows.UI.Xaml.Shapes.Pathpath)〃刪除
最后一個路徑
publicvoidClearPath()〃刪除所有路徑
publicvoidShowInPanel(Panelpanel)〃在容器中顯示內(nèi)容CanvasorGrid
publicintCount()〃圖形路徑的數(shù)量
1.2黑板畫類
BlackBoardBook黑板頁冊子類,其包含多個黑板頁。其功能包含讀入及保存黑
板冊子的內(nèi)容,遍歷每一頁、每一個路徑、筆畫的顏色,填充的顏色,點畫線的配
合,配置參數(shù)的寫入于讀出。
主要功能函數(shù)有:
publicasyncTaskLoad(stringFilename)〃加載黑板冊子文件內(nèi)容
voidReadConfig(BinaryReaderreader)〃讀入配置參數(shù)
voidReadPages(BinaryReaderreader)〃讀入書的內(nèi)容
voidReadOnePage(BinaryReaderreader,BlackBoardPageonePage)〃讀入每
一頁
voidReadOnePath(BinaryReaderreader,Windows.UI.Xaml.Shapes.Path
path)〃讀入每一個路徑的畫筆顏色、填充顏色、圖形的透明度
asyncpublicvoidSave(BlackBoardBookbook)〃保存整個書
voidWriteConfig(BinaryWriterwriter)〃寫入配置參數(shù)
voidWritePages(BinaryWriterwriter)
voidWriteOnePage(BinaryWriterwriter,BlackBoardPageonePage)
voidWriteOnePath(BinaryWriterwriter,Windows.ULXaml.Shapes.Path
path)
1.3頁面類的應(yīng)用
提供幾方面重要便利的Page的典型實現(xiàn),GoBack、GoForward和GoHome事件
處理程序,用于導(dǎo)航的鼠標(biāo)和鍵盤快捷鍵,用于導(dǎo)航和進(jìn)程生命期管理的狀態(tài)管理。
主要代碼:
protectedvirtualvoidGoBack(objectsender,RoutedEventArgse)
(
//使用導(dǎo)航框架返回上一頁
if(this.Frame!=null&&this.Frame.CanGoBack)
this.Frame.GoBack();
)
protectedvirtualvoidGoForward(objectsender,
RoutedEventArgse)
(
//使用導(dǎo)航框架移至下一頁
if(this.Frame!=null&&this.Frame.CanGoForward)
this.Frame.GoForward();
)
privatevoid
CoreDispatcher_AcceleratorKeyActivated(CoreDispatchersender,
AcceleratorKeyEventArgsargs)
varvirtualKey=args.VirtualKey;
//僅當(dāng)按向左、向右或?qū)S蒙弦豁摶蛳乱豁撴I時才進(jìn)一步
//調(diào)查
if((args.EventType==
CoreAcceleratorKeyEventType.SystemKeyDown
args.EventType==CoreAcceleratorKeyEventType.KeyDown)
&&
(virtualKey==VirtualKey.Left||virtualKey==
VirtualKey.RightI'
(int)virtualKey==166|(int)virtualKey==167))
(
varcoreWindow=Window.Current.CoreWindow;
vardownState=CoreVirtualKeyStates.Down;
boolmenuKey=
(coreWindow.GetKeyState(VirtualKey.Menu)&downState)二二downState;
boolcontrolKey=
(coreWindow.GetKeyState(VirtualKey.Control)&downState)二二downState;
boolshiftKey=
(coreWindow.GetKeyState(VirtualKey.Shift)&downState)==downState;
boolnoModifiers=!menuKey&&!controlKey
&&!shiftKey;
boolonlyAlt=menuKey&&!controlKey&&!shiftKey;
if(((int)virtualKey=二166&&noModifiers)||
(virtualKey==VirtualKey.Left&&onlyAlt))
(
〃在按上一頁鍵或Alt+向左鍵時向后導(dǎo)航
args.Handled=true;
this.GoBcick(this,newRoutedEventArgsO);
)
elseif(((int)virtualKey==167&&noModifiers)I|
(virtualKey=VirtualKey.Right&&onlyAlt))
//在按下一頁鍵或Alt+向右鍵時向前導(dǎo)航
args.Handled=true;
this.GoForward(this,newRoutedEventArgs());
)
1.4全局會話
捕獲全局會話狀態(tài)以簡化應(yīng)用程序的進(jìn)程生命期管理。請注意會話狀態(tài)在許多
條件下將自動清除,因此應(yīng)該只用于存儲方便在會話之間傳遞,但在應(yīng)用程序崩潰
時應(yīng)放棄升級時應(yīng)丟棄的信息。
其他類的設(shè)計
2.1角度計算類
用于計算圖形旋轉(zhuǎn)后的角度。
classRotationVector
(
publicstaticPointRotationOneVector(Pointpt,doubleangle)
(
doubleoldangle=Math.Atan2(pt.Y,pt.X);
oldangle+=angle;
doublelen=Math.Sqrt(pt.X*pt.X+pt.Y*pt.Y);
returnnewPoint(len*Math.Cos(oldangle),len*
Math.Sin(oldangle));
)
2.2黑板頁類
表示一塊黑板頁,用來處理黑板畫系統(tǒng)中每一頁的信息。
主要代碼:
publicclassBlackBoardPeige//一塊黑板頁
(
publicList<Windows.UI.Xaml.Shapes.Path>PathList{get;set;}
〃有多個圖形路徑來顯示其內(nèi)容:不能序列化
publicBlackBoardPage()
PathList=newList<Windows.UI.Xaml.Shapes.Path>();
ClearPath();
)
publicvoidAddOnePath(Windows.UI.Xaml.Shapes.Pathpath)//
增加一個幾何圖形路勁:path包含了幾何圖形
(
PathList.Add(path);
)
publicvoidDeleteLastPath0〃刪除最后一個路徑
(
if(PathList.Count>0)
(
PathList.RemoveAt(PathList.Count-1);
)
)
publicboolDeleteOnePath(Windows.UI.Xaml.Shapes.Pathpath)
〃刪除最后一個路徑
(
returnPathList.Remove(path);
)
publicvoidClearPath()//刪除所有路徑
{
PathList.Clear();
publicvoidShowInPane1(Panelpanel)〃在容器中顯示內(nèi)容
CanvasorGrid
panel.Children.Clear();
for(inti=0;i<PathList.Count;i++)
panel.Children.Add(PathList[i]);
)
publicintCount()〃圖形路徑的數(shù)量
{
returnPathList.Count;
)
)
三、主程序的設(shè)計
主頁面對象的設(shè)計:
3.1變量(屬性)的設(shè)計
BlackBoardBookbook;〃黑板冊子
BlackBoardPagecurrentPage;〃當(dāng)前頁
Dictionary<uint,Windows.UI.Xaml.Shapes.Path>activePaths=
newDictionary<uint,Windows.ULXaml.Shapes.Path>();//用來保存多個手指的
繪制路徑
Dictionary<uint,Point>downPoints=newDictionary<uint,
PointX);〃保存觸目開始按下的點的位置
Dictionary<uint,long>timeStamps=newDictionary<uint,
long>();〃保存觸目開始按下的點的時間
IReadOnlyList<StorageFile>picFiles;〃保存圖片庫列表
publicLiveAuthClientauth;〃與Live有關(guān)的對象
publicLiveConnectClientclient;
publicLiveConnectSessionsession;
stringskydriveSelld=null;〃當(dāng)前選擇的skydrive內(nèi)容
Id
dynamiclastResult=null;〃當(dāng)前云操作的結(jié)果
boolIsTrial=true;〃試用版標(biāo)志
publicintwidth;
publicintheight;
boolbCanDraw=true;
boolbisDrawing=true;
boolbModified=false;
3.2連接SkyDrive函數(shù)
privateasyncTaskInitAuthO〃連接skydrive
privateasyncvoidbtnConnectLive_Click(objectsender,
RoutedEventArgse)
privateasyncvoidGetskydrivFDPO//獲取skydrive的根目錄
privateasyncvoidIbskyFiles_SelectionChanged(objectsender,
SelectionChangedEventArgse)〃選擇skydrive文件夾或文件
privateasyncvoidbtnOpenDir_Click(objectsender,
RoutedEventArgse)//打開skydrive目錄
privateasyncTaskOpenskydriveDir(stringskydriveSelld)//
打開指定skydrive文件夾
privateasyncvoidbtnDownload_Click(objectsender,
RoutedEventArgse)〃下載文件
privateasyncvoidbtnUpload_Click(objectsender,
RoutedEventArgse)〃上傳文件
3.3設(shè)置畫筆的參數(shù)
voidFillPenSize(ListBoxlistbox)〃設(shè)置畫筆的參數(shù)
voidFil1penDash(ListBoxlistbox)〃設(shè)置折線畫筆參數(shù)
voidFillPolyCount(ListBoxlistview)〃設(shè)置多邊形參數(shù)
asyncpublicvoidLoadMapFileList()〃獲取已有講稿文件名
asyncTaskLoadLastFDPFile()〃打開最后的繪圖文件
asyncTaskOpenFDPFile(stringFn)〃打開繪圖文件
voidTitleAndAppbarUpdate()〃更新標(biāo)題
voidUpdateConfig()〃更新配置
3.4界面導(dǎo)航函數(shù)的設(shè)計
protectedasyncoverridevoid
OnNavigatedTo(NavigationEventArgse)〃進(jìn)入頁面
protectedoverridevoidOnNavigatedFrom(NavigationEventArgse)
〃離開頁面
asyncvoidbtnDelPage_Tapped(objectsender,TappedRoutedEventArgse)
〃刪除頁
privatevoidbtnAddTapped(objectsender,
TappedRoutedEventArgse)〃增加頁
privatevoidbtnPre_Tapped(objectsender,
TappedRoutedEventArgse)〃上一頁
privatevoidbtnNext_Tapped(objectsender,
TappedRoutedEventArgse)〃下一頁
3.5繪圖函數(shù)
voidSetPathPara(Windows.UI.Xaml.Shapes.Pathpath)〃設(shè)置幾
何路徑的參數(shù)
voidMakePolygon(intnSide,Pointpt,uintid)〃產(chǎn)生多邊形
voidAddPolygonGeometryDown(Pointpt,uintid)〃產(chǎn)生多邊形
voidAddPolygonGeometryMove(Pointpt,uintid)〃移去該手指畫
的圖形
voidAddPathGeometryDown(Pointpt,uintid)〃自由繪
圖增加一個點
voidAddPathGeometryMove(Pointpt,uintid)〃自由繪圖
增加一個線段
voidAddPathGeometryUp(Pointpt,uintid)〃自由繪圖
增加最后一個線段
voidAddRectangleGeometryDown(Pointpt,uintid)〃繪圖增加
一個矩形幾何圖象
voidAddRectangleGeometryMove(Pointpt,uintid)〃修改幾何
矩形的寬高
voidAddEllipseGeometryDown(Pointpt,uintid)〃繪圖增加
一個橢圓幾何圖象
voidAddEllipseGeometryMove(Pointpt,uintid)〃繪圖增加
一個橢圓幾何圖象
voidAddLineGeometryDown(Pointpt,uintid)〃繪圖增加
一條直線
voidAddSinGeometryDown(Pointpt,uintid)〃繪圖增加一條
zh正弦曲線
voidAddArrowGeometryDown(Pointpt,uintid)〃增加箭頭
圖形
voidAddArrowGeometryMove(Pointpt,uintid)〃移動箭頭
方向和長度
voidAddStarGeometryDown(Pointpt,uintid)〃繪制一個
五角星
voidAddPolyLineGeometryDown(Pointpt,uintid)〃增加多線
段圖形,與自由繪圖有所區(qū)別:停頓一下后才繪制一條線
privatevoidPathManipulationDelta(objectsender,
ManipulationDeltaRoutedEventArgse)〃處理圖形觸摸事件
voidCopyPath(Windows.ULXaml.Shapes.Pathspath,
Windows.UI.Xaml.Shapes.Pathdpath)〃復(fù)制圖形
privatevoidbtnNewFile_Click(objectsender,RoutedEventArgs
e)〃新建文件
privateasyncvoidbtnOpen_Click(objectsender,
RoutedEventArgse)〃打開黑板文件
privateasyncvoidbtnDelete_Click(objectsender,
RoutedEventArgse)〃刪除繪圖文件
voidCombineColor()〃合成顏色給畫筆或背靜
3.6構(gòu)造函數(shù)
初始化變量,/獲取已有講稿文件名
publicMainPageO//構(gòu)造函數(shù)
(
this.InitializeComponent();
initializeLicense();
book=newBlackBoardBook();
LoadMapFileListO;〃獲取已有講稿文件名
plSelPara.Visibility=Visibility.Collapsed;
plselShape.Visibility=Visibility.Collapsed;
plselFile.Visibility=Visibility.Collapsed;
plselPicture.Visibility=Visibility.Collapsed;
progressBar.Visibility=Visibility.Collapsed;
ShowToolButton(false);
inkPresenter.PointerPressed十二PagePointerPressed;
inkPresenter.PointerMoved+二PagePointerMoveed;
inkPresenter.PointerReleased十=PagePointerReleased;
FillPenSize(penSize);
FillPenSize(radius);
FilIpenDash(penDashl);
FilIpenDash(penDash2);
FillPolyCount(IbSelPoly);
)
3.7填充字的大小函數(shù)
用來設(shè)置字體的
voidFillPenSize(ListBoxlistbox)
listbox.Items.Clear();
for(inti=0;i<=50;i++)
listbox.Items.Add(String.Format(〃{0:00}〃,i));
P
voidFilIpenDash(ListBoxlistbox)
(
listbox.Items.Clear();
for(inti=0;i<=50;i++)
listbox.Items.Add(String.Format(/z{0:Fl}/z,i/10.0));
)
voidFillPolyCount(ListBoxlistview)
(
List<NamedString>1st=newList<NamedString>();
for(inti=3;i<=50;i++)
(
strings=St
ring.Format(〃{0:00}。i);
1st.Add(newNamedString(s));
)
listview.ItemsSource=1st;
3.8設(shè)置畫筆顏色函數(shù)
顏色設(shè)置函數(shù),用來設(shè)置畫筆的顏色,及背景的顏色。
voidSetPenOrBackColor()〃顏色設(shè)置
if(sdOpacity==null)return;
Colorcl;
if((bool)rbPen.IsChecked)〃畫筆
cl=book.StrokeColor;
sdOpacity.Value=book.PathOpacity;
)
elseif((bool)rbBack.IsChecked)//背景
(
cl=book.BackColor;
sdOpacity.Value=book.BackOpacity;
else〃填充
(
cl=book.FillColor;
sdOpacity.Value=book.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人電子煙零售店加盟合同(2024年度)3篇
- 二零二五年度城市綠化用地承包合同范本4篇
- 2025年度個人房產(chǎn)抵押借款合同修訂版8篇
- 二零二四年二手挖掘機(jī)交易安全保障合同2篇
- 2025年度專業(yè)烘焙廚師勞務(wù)輸出合同4篇
- 二零二四年度巖棉巖棉板隔熱保溫材料供應(yīng)合同6篇
- 2025年度高空作業(yè)爬架租賃與勞務(wù)提供綜合服務(wù)合同4篇
- 2025年中國液力緩速器行業(yè)發(fā)展趨勢預(yù)測及投資戰(zhàn)略咨詢報告
- 2025年度旅游度假村開發(fā)管理合同示范文本4篇
- 二零二四年度新能源車租賃及購買貸款一攬子服務(wù)合同3篇
- 2024年全國甲卷高考化學(xué)試卷(真題+答案)
- 汽車修理廠管理方案
- 人教版小學(xué)數(shù)學(xué)一年級上冊小學(xué)生口算天天練
- 三年級數(shù)學(xué)添括號去括號加減簡便計算練習(xí)400道及答案
- 蘇教版五年級上冊數(shù)學(xué)簡便計算300題及答案
- 澳洲牛肉行業(yè)分析
- 老客戶的開發(fā)與技巧課件
- 計算機(jī)江蘇對口單招文化綜合理論試卷
- 成人學(xué)士學(xué)位英語單詞(史上全面)
- KAPPA-實施方法課件
- GB/T 13813-2023煤礦用金屬材料摩擦火花安全性試驗方法和判定規(guī)則
評論
0/150
提交評論