代码之家  ›  专栏  ›  技术社区  ›  Amirshk

如何在C#WinForms项目中绘制“页面”

  •  1
  • Amirshk  · 技术社区  · 16 年前

    我想用C#显示Windows窗体项目中的数据。

    我正在寻找一个好的起点,最好是开源的。

    我考虑过使用某种报告工具,比如Crystal Reports,这是个好主意吗?

    欢迎提出任何想法和建议。

    谢谢

    4 回复  |  直到 16 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    但是,如果您打算将其作为一个商业项目,我建议将其作为WinForms应用程序。WPF需要Visual Studio 2008和.Net 3.5。许多Windows用户(尤其是公司客户)仍在使用.Net 2.0,不打算很快升级。有些甚至还在.NET1.1上(或者根本没有.Net)。NET2.0现在已经预装到了新的PC上,2.0的安装程序只有23MB(相比之下,有些问题的.NET3.5安装程序的安装速度接近200MB)。此外,由于Mono,.Net应用程序(可能)可以在Mac、Linux和iPhone上运行,但Mono现在介于.Net 2.0和.Net 3.5之间,因此WPF应用程序还不能跨平台。

    下面是关于使用GDI+在.Net中实现缩放效果的类似问题的先前答案:

    Auto sizing zoom on an image in .NET

    这将为您在.Net中进行此类图形工作提供一个开始(它是开源的)。

    更新 :如果要呈现XPS文档(轻松),则应使用WPF。然而,这种选择将有效地消除通过Mono实现应用程序跨平台的可能性,至少在短期内是如此。

    另一种方法是将文档导出为PDF文件,或使用Adobe Acrobat将XPS文档转换为PDF文件。下面是一个指向CodeProject示例的链接,该示例完全以C#/.Net 2.0或更高版本呈现PDF:

    http://www.codeproject.com/KB/showcase/pdfrasterizer.aspx

        2
  •  2
  •   Muad'Dib    16 年前

    听起来你最好还是走WPF路线。您可以更好地控制“表单”的外观。

    您要做的是在用户控件或其他东西中定义每个“页面”,然后您可以随意显示每个页面。WPF可以为您处理缩放,您所要做的就是连接它(查看变换)。我看不到WinForms会这么做。我建议 looking at this project 在codeplex上。

        3
  •  0
  •   MNZ    16 年前

    TabControl不做你想做的事?

        4
  •  0
  •   Andrew Keith    16 年前

    听起来您试图做的是使应用程序的行为类似于网页。仅仅添加一个WebBrowser控件就足够了吗?