如何在c#中开始进行图表开发

时间:2009-12-14 19:54:55

标签: c# graphics diagram

我想尝试创建一个图表制作工具(类似于您可以在SQL Server 2005中创建的实体关系图,或者您可以在Microsoft Visual Studio中创建的类图)

IE中。我想创建框,在其中放置文本,能够编辑此文本并在框之间绘制线条。

之前我从未做过这种编程,所以我不知道从哪里开始。

我是否使用XAML或创建画布并进入图形编程?

我知道有一些图表工具,但我真的想通过自己做这些事情来找出这些东西。

4 个答案:

答案 0 :(得分:2)

嗯,这里是the basis of one on CodeProject,包含源代码和教程。对于WPF。

另见this question

答案 1 :(得分:2)

WPF / XAML是一个很好的开始这样的地方。你将要研究一般的WPF,重点是自定义控件(用于表格)和绘图线条(用于关系)。

答案 2 :(得分:1)

你选择的渲染引擎有些随意 - 无论你使用什么框架,你都要做很多工作。

在C#和WinForms中实现了这样一个系统,我可以说老实说这是一条不好的路。坚持WPF / Silverlight。结合趋势,编写Silverlight 4应用程序,以便在多个平台上部署到桌面。

我发现你必须做出很多高级决策,这些决定比你使用的渲染引擎更重要。其中一些是:

  • 你需要多少缩放和平移?

    • 您想要连续缩放,以便您可以对数据进行整洁的动画制作吗?
    • 你需要只用鼠标平移吗?
    • 您如何区分平移动作与拖动盒子和手柄?
    • 您是否会根据当前缩放级别更改框中内容的布局?或者你会依赖字体缩放吗?
  • 您需要分组吗?一旦你在屏幕上看到几张桌子,你很快就会意识到能够隐藏一些细节非常有用。能够将盒子分组并以标志性形式显示该组作为“元”盒允许用户摆脱不必要的干扰。

  • 您需要搜索吗?再次试图打击“屏幕太多”问题,最好有一个搜索框,隐藏与搜索不匹配的所有内容(灰色,隐藏等)

  • 用户如何与键盘交互。由于您的观众可以包括程序员,因此您只需要考虑使用键盘即可编辑所有图表。这意味着可以智能地处理焦点以及使用哪些热键。

答案 3 :(得分:1)

正如弗兰克指出的那样 - 创建交互式图形是一件大事。许多公司已经在那里,花了数百万美元来完善它。这取决于你想要多少交互性。我建议您选择一个可扩展的图形应用程序或具有适合您预算的API。更好的是(我认为)在CAD领域,例如AutoCAD(£4k /座),TurboCAD,VeCAD(200英镑/座位);并且所有包装都允许您在自己的产品中转售产品。