翻譯|其它|編輯:吳園園|2019-08-09 10:31:59.720|閱讀 413 次
概述:MindFusion.Diagramming for WinForms是一款能夠幫助你輕松創(chuàng)建流程圖和示意圖的.NET控件,可以自定義設(shè)計(jì)樣式和圖表框顏色。本文整理了用戶常見(jiàn)的圖序列化和導(dǎo)出問(wèn)題,希望對(duì)您有所幫助。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
相關(guān)鏈接:
點(diǎn)擊下載MindFusion.Diagramming for WinForms最新試用版
本文整理了用戶常見(jiàn)圖序列化和導(dǎo)出問(wèn)題,希望對(duì)您有所幫助~
問(wèn):在v5中的Diagram.LoadFromXml中是否已經(jīng)改進(jìn)了XML反序列化速度?
答:版本5使用DOM API和版本4使用線性序列化,因此在V5中XML序列化速度稍慢,但您會(huì)注意到它只有大量項(xiàng)目(數(shù)千個(gè))。此外,版本5序列化保存了共享節(jié)點(diǎn)映像的單個(gè)副本,因此使用映像時(shí)新版本中的XML序列化速度要快得多。我們已經(jīng)完成了400個(gè)節(jié)點(diǎn)和400個(gè)鏈接的一些測(cè)試:
V4.3.1,沒(méi)有圖像:文件加載一秒鐘
V5.0,沒(méi)有圖像:文件加載一秒鐘
V4.3.1,包含10張圖像:文件加載12秒
V5.0,有10個(gè)圖像:文件加載2秒
上次測(cè)試的每個(gè)圖像都分配給40個(gè)節(jié)點(diǎn)。在這種情況下,版本5中的速度更好,因?yàn)楣蚕韴D像的字節(jié)被編碼并保存一次; 而版本4為每個(gè)節(jié)點(diǎn)保存一個(gè)單獨(dú)的副本,然后在加載時(shí)解碼400個(gè)圖像副本。
問(wèn): Diagram.LoadFromXml可以讀取使用以前版本的XmlWriter類創(chuàng)建的XML字符串嗎?
答:舊的XML格式仍然支持閱讀; 實(shí)際上,您必須使用LoadFromString方法來(lái)加載XML字符串。
問(wèn):在v5中,獲取文檔的LoadFromXml重載與獲取字符串的重載之間是否存在性能差異?
答:后者在從字符串內(nèi)容創(chuàng)建XmlDocument對(duì)象后調(diào)用前者。
問(wèn):是否可以將圖表轉(zhuǎn)換為位圖文件?
答:調(diào)用Diagram.CreateImage方法,然后調(diào)用Image.Save方法。
問(wèn):我正在嘗試創(chuàng)建一個(gè)自定義拖放圖標(biāo),以便在屏幕上拖動(dòng)形狀時(shí)顯示。有沒(méi)有辦法將flowChart形狀動(dòng)態(tài)轉(zhuǎn)換為圖像?
答:使用Graphics.FromImage創(chuàng)建圖形對(duì)象。要在Graphics實(shí)例上繪制形狀,請(qǐng)創(chuàng)建臨時(shí)節(jié)點(diǎn),設(shè)置其形狀,然后調(diào)用ShapeNode.Draw方法。Flowcharter示例項(xiàng)目中顯示了類似的方法,其中列表框中的圖標(biāo)表示Flowchart.NET形狀。
問(wèn):如何將圖表導(dǎo)出到emf文件?
答:使用以下代碼:
using (FileStream stream = new FileStream(
@"C:\temp.wmf", FileMode.Create))
{
Graphics g = CreateGraphics();
IntPtr hDC = g.GetHdc();
Metafile metafile = new Metafile(stream, hDC);
g.ReleaseHdc(hDC);
g.Dispose(); IGraphics gMeta = new GdiGraphics(
Graphics.FromImage(metafile));
diagram.Draw(gMeta, new RenderOptions(),
diagram.Bounds, false);
gMeta.Dispose();
metafile.Dispose();
}
IGraphics和GdiGraphics在MindFusion.Drawing命名空間中定義。
問(wèn):我可以將選擇的項(xiàng)目保存到文件中嗎?
答:使用CopySelection和PasteSelection方法將所選項(xiàng)目復(fù)制到第二個(gè)Diagram實(shí)例,并調(diào)用Diagram.SaveToFile方法將它們保存到文件中。
問(wèn): FlowChart.NET可以讀取我的數(shù)據(jù)庫(kù)模式并為其生成ER圖嗎?
答:不可以。您應(yīng)該通過(guò)ADO.NET閱讀架構(gòu),并使用CreateTableNode和CreateDiagramLink方法以編程方式生成圖表。
問(wèn):我有一個(gè)SQL表,其中包含一些包含多列中的狀態(tài)和連接信息的條目。我已經(jīng)導(dǎo)入了節(jié)點(diǎn)。現(xiàn)在我想組織連接。你有一些提示我應(yīng)該選擇哪種方式嗎?
答:要?jiǎng)?chuàng)建連接,請(qǐng)?jiān)趧?chuàng)建節(jié)點(diǎn)時(shí)將數(shù)據(jù)庫(kù)中的節(jié)點(diǎn)ID分配給ShapeNode.Tag屬性。在鏈接記錄上運(yùn)行第二個(gè)循環(huán),對(duì)于節(jié)點(diǎn)的每個(gè)相關(guān)節(jié)點(diǎn)ID,調(diào)用CreateDiagramLink(node,Diagram.FindNode(relatedID))。如果您已使用標(biāo)簽存儲(chǔ)其他信息,請(qǐng)將關(guān)系保存在Hashtable中。要排列圖表,請(qǐng)使用一些布局算法類,例如LayeredLayout。
問(wèn)答持續(xù)更新中>>>
想要購(gòu)買(mǎi)MindFusion.Diagramming for WinForms正版授權(quán)的朋友歡迎哦~
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: