WPF/XAML are a great place to start for something like this. You'll want to study WPF in general, with a focus on custom controls (for tables) and drawing lines (for the relationships.)
The rendering engine you pick is somewhat arbitrary - you're going to have to do a lot of work no matter what framework you use.
Having implemented such a system in C# and WinForms, I can honestly say that's a bad route to go. Stick to WPF/Silverlight. Going with trends, write a Silverlight 4 app so you can deploy to desktops on multiple platforms.
I found that there are a lot of high-level decisions that you have to make that are even more important than which rendering engine you use. Some of these are:
How much do you need to zoom and pan around?
Do you want continuous zoom so that you can do neat animations to the data?
Do you need to be able to pan with just the mouse?
How will you distinguish pan movements from dragging around boxes and handles?
Will you change the layout of content in the boxes dependent upon the current zoom level? or will you rely on font scaling?
Do you need grouping? Once you get a few tables on the screen you will soon realize that being able to hide some detail is useful. Being able to group boxes and to show that group in iconic form as "meta" box allows the user to get rid of unwanted distractions.
Do you need search? Again trying to combat the "too much on the screen" problem, it's good to have a search box that hides everything that doesn't match the search (gray out, hide, etc.)
How will the user interact with the keyboard. Since your audience can include programmers, you're going to want to give a lot of thought to making all your diagrams editable with just the keyboard. This means things like handling focus intelligently along with which hot keys to use.
正如弗兰克所指出的——创建交互式图形是一项大生意。许多公司已经做到了这一点,并花费了数百万英镑来完善它。这取决于您想要多少互动性。我建议您选择一个可扩展或具有 API 的图形应用程序 - 适合您的预算。更好的(在我看来)是在 CAD 领域,例如 AutoCAD(4000 英镑/座)、TurboCAD、VeCAD(200 英镑/座);并且所有产品都具有允许您在您的产品中转售其产品的套餐。
As Frank has pointed out - creating interactive graphics is big business. Many companies have already been there, spent £millions perfecting it. It would depend upon how much interactivity you want. I would advise you pick a graphing application that is extensible or has an API - that suits your budget. The better ones are (in my opinion) in the CAD domain, such as AutoCAD (£4k/seat), TurboCAD, VeCAD (£200/seat); and all have packages that allow you to resell their product within yours.
发布评论
评论(4)
WPF/XAML 是此类事情的一个很好的起点。您需要总体学习 WPF,重点是自定义控件(对于表)和绘图线(对于关系)。
WPF/XAML are a great place to start for something like this. You'll want to study WPF in general, with a focus on custom controls (for tables) and drawing lines (for the relationships.)
好吧,这里是 CodeProject 的基础,包含源代码和教程。对于 WPF。
另请参阅此问题。
Well, here is the basis of one on CodeProject, with source and a tutorial. For WPF.
Also see this question.
您选择的渲染引擎有些随意 - 无论您使用什么框架,您都必须做很多工作。
在 C# 和 WinForms 中实现了这样一个系统后,我可以诚实地说这是一条糟糕的道路。坚持使用 WPF/Silverlight。顺应趋势,编写一个 Silverlight 4 应用程序,以便您可以部署到多个平台上的桌面。
我发现您必须做出许多高层决策,这些决策甚至比您使用哪种渲染引擎更重要。其中一些是:
您需要缩放和平移多少?
需要分组吗?一旦屏幕上显示了一些表格,您很快就会意识到能够隐藏一些细节是很有用的。能够对框进行分组并以图标形式显示该组作为“元”框,可以让用户摆脱不必要的干扰。
您需要搜索吗?再次尝试解决“屏幕上太多”问题,最好有一个搜索框可以隐藏所有与搜索不匹配的内容(变灰、隐藏等)。
用户将如何与搜索框交互键盘。由于您的受众可能包括程序员,因此您需要花很多心思来使所有图表都可以仅通过键盘进行编辑。这意味着智能地处理焦点以及使用哪些热键。
The rendering engine you pick is somewhat arbitrary - you're going to have to do a lot of work no matter what framework you use.
Having implemented such a system in C# and WinForms, I can honestly say that's a bad route to go. Stick to WPF/Silverlight. Going with trends, write a Silverlight 4 app so you can deploy to desktops on multiple platforms.
I found that there are a lot of high-level decisions that you have to make that are even more important than which rendering engine you use. Some of these are:
How much do you need to zoom and pan around?
Do you need grouping? Once you get a few tables on the screen you will soon realize that being able to hide some detail is useful. Being able to group boxes and to show that group in iconic form as "meta" box allows the user to get rid of unwanted distractions.
Do you need search? Again trying to combat the "too much on the screen" problem, it's good to have a search box that hides everything that doesn't match the search (gray out, hide, etc.)
How will the user interact with the keyboard. Since your audience can include programmers, you're going to want to give a lot of thought to making all your diagrams editable with just the keyboard. This means things like handling focus intelligently along with which hot keys to use.
正如弗兰克所指出的——创建交互式图形是一项大生意。许多公司已经做到了这一点,并花费了数百万英镑来完善它。这取决于您想要多少互动性。我建议您选择一个可扩展或具有 API 的图形应用程序 - 适合您的预算。更好的(在我看来)是在 CAD 领域,例如 AutoCAD(4000 英镑/座)、TurboCAD、VeCAD(200 英镑/座);并且所有产品都具有允许您在您的产品中转售其产品的套餐。
As Frank has pointed out - creating interactive graphics is big business. Many companies have already been there, spent £millions perfecting it. It would depend upon how much interactivity you want. I would advise you pick a graphing application that is extensible or has an API - that suits your budget. The better ones are (in my opinion) in the CAD domain, such as AutoCAD (£4k/seat), TurboCAD, VeCAD (£200/seat); and all have packages that allow you to resell their product within yours.