2013-10-02 100 views
3

我正在尋找一個基本的圖形庫/框架/包(用於.NET),這將允許我創建類似於在Visual Studio Code Mapshttp://i.msdn.microsoft.com/dynimg/IC630823.png中顯示的簡單二維圖。
無論如何要確定哪些技術用於開發代碼地圖應用程序?基本的2D圖形庫

我的目標是實現有限狀態機的輕量級動畫圖形顯示,以支持仿真應用程序的調試。我猜Code Maps是用WPF編寫的,但不幸的是,我的團隊中的開發人員沒有任何WPF/XAML經驗,所以如果有更簡單的方法可用,我不願意投資於這種學習曲線。任何人都可以指向我可以幫助我構建一個簡單的自定義GUI的任何其他庫嗎?

相關問題:

+2

有關於codeproject的圖設計器項目可能很有用http://www.codeproject.com/Articles/24681/WPF-Diagram-Designer-Part-4。除此之外,你的問題是不幸的(見第5點這裏:http://stackoverflow.com/help/on-topic) – ChrisWue

+0

老實說,用gdi +繪製這麼微不足道,真的不是很多需要使用庫。要解決的唯一棘手的問題是如何以正確的角度添加箭頭,並且涉及的數學非常簡單並且不難在網上查找。爲什麼不把它當作一個學習的機會,自己去做呢? –

+0

@JasonWilliams:謝謝你的建議。 (我已經在我的MFC中使用過GDI,所以我對這種方法很熟悉。)但是,我過分簡化了原始文章中的要求。如果您查看Code Maps示例,可以拖動每個框並自動重新定向箭頭,彎曲以避免碰撞;還有內置的圖形佈局算法。是的,我絕對可以用GDI做所有事情(這也會很有趣!)但是由於這個項目的時間限制,我希望找到一個能夠提供一些功能的庫。 – kmote

回答

4

沒有必要承受在winforms中做類似事情時所遭受的地獄般的折磨和痛苦,也不需要爲第三方解決方案支付$$$$金額。

Here是我的簡單,少於100行的代碼方法這樣的事情(包括完整的源代碼)。

enter image description here

它不具有「自動佈局」的算法,但是從數據和邏輯的UI被良好分離,通過實施MVVM。因此,您應該很容易創建自己的佈局邏輯。

忘記winforms。沒用的。


不幸的是在我的球隊開發商沒有任何WPF/XAML經驗

這可能是一個很好的機會去了解它。並且擺脫古代技術帶來的諸多限制。

一旦你瞭解並學習了XAML和WPF的DataBinding的強大功能,你永遠不會想回到糟糕的程序化winforms。認真。 (正確實現)MVVM提供的簡單性,可維護性和清潔性遠遠超過您希望在winforms或其他任何方面實現的任何內容。

+0

很酷。看起來也是對WPF的一個很好的介紹。感謝發佈。 – kmote

+0

您是否願意離線回答有關您的代碼的幾個問題?如果是這樣,請給我發一封電子郵件(我的地址列在我的個人資料中)。 – kmote

+0

@Kmote嗨!我通過你的個人資料,我沒有找到任何電子郵件地址,只有LinkedIn和Wordpress的東西:P。是的,我很樂意幫助你。如果你願意,你可以在SO聊天中找到我。也歡迎捐款=) –

3

我想什麼是使用來自微軟研究這項技術:Microsoft Automatic Graph Layout

MSAGL是圖形佈局和觀看的.NET工具。它是由Lev Nachmanson在微軟研究院的 中開發的。 MSAGL建立在Sugiyama方案的原理 上;它產生所謂的分層或分層佈局。這種佈局自然適用於帶有一些信息流的圖形。例如,該圖可以表示程序,狀態機或C++類層次結構的控制流程圖。

如果您是MSDN訂戶,您可以免費(待檢查),否則它是商業包裝。

+0

我曾閱讀過關於MSAGL的文章,並知道它附帶了VS2012 Ultimate(我沒有),但不知道它可以單獨購買。 (我終於找到了[那個鏈接](http://www.microsoftstore.com/store/msusa/en_US/pdp/Automatic-Graph-Layout-2007/productID.253652400)。)但是我不確定我是不是'我準備好在不知道更多關於變化的情況下將變化大塊。希望有一個評估版可用。 – kmote