资讯专栏INFORMATION COLUMN

.NET开发技巧——从Winform穿越到WPF

hufeng / 660人阅读

摘要:微软已经架设了两个开发平台的之间的通信桥梁,目前为止二者相互转换使用已经相当成熟了,今天主要给大家讲讲如何在这两个平台下调用的控件。我们先看一个示例通过微软原生态控件在中使用,代码如下其实是在的容器,所以的控件显示都要在这个容器里面。

概述

WPF 和 Winform 是两个多带带的平台,但二者又都是基于 .NET 4.0 以上版本开发的,所以很多.NET开发人员就开始研究如何在WPF中使用Winform。微软已经架设了两个开发平台的之间的通信桥梁,目前为止二者相互转换使用已经相当成熟了,今天主要给大家讲讲如何在这两个平台下调用 ComponentOne 的控件。

本文主要用 FlexReport .NET报表控件,作为介质进行两个平台的链接

Step 1

首先,我们还是把两个平台的基本通信通道搭建起来,很简单,网上有很多步骤,总结起来主要分三步:

添加两个引用:WindowsFormsIntegration.dll(负责整合WPF和Windows)、System.Windows.Forms.

在 XAML文件中添加两个引用(粗体部分):

    
    < /Window>

解释一下,这段代码真正起作用的是这个引用WindowsFormsIntegration.dll,而这个引用System.Windows.Forms 指的是Winform里面的微软的原生态控件,所以在用到ComponentOne时,可以不引用它。

我们先看一个示例:通过微软原生态控件在WPF中使用Winform,代码如下:


                    
        
    

WindowsFormsHost其实是Winform在WPF的容器,所以Winform的控件显示都要在这个容器里面。

Setp2

上面我们说了,我们以FlexReport为介质进行通信,那我们需要准备的几个小步骤:

Winform下FlexReport的模板

相关引用

注意:这里面的引用是Winform的引用。同样,我们需要在xmal中引用:

xmlns:cc11="clr-namespace:C1.Win.FlexViewer;assembly=C1.Win.FlexViewer.4"

在布局中添加可供报表预览的控件


        
            
        
    
Setp3

我们在后台加载报表

private C1FlexReport _report;
    public Window1()
    {
        InitializeComponent();

        _report = new C1FlexReport();

        // load report definition from resources
        Assembly asm = Assembly.GetExecutingAssembly();
        using (Stream stream = asm.GetManifestResourceStream("WpfApp1.Resources.FlexCommonTasks.flxr"))
            _report.Load(stream, "Chart2D");

        // assign report to the preview pane
        flexViewerPane.DocumentSource = null;
        flexViewerPane.DocumentSource = _report;
    }

注:切记,这里面的报表是Winform平台下的

到这一步,我们工作完成了一大半,还差最后一步点石成金的步骤。很多人以为在这就结束了,但是我们要考虑 ComponentOne License 授权的问题,如何把Winform 的授权在WPF下注册,其实很简单,因为 .NET 的license机制一样,我们只需用同样的方式去注册控件的license ,不过这里推荐手动注册,这很重要,因为一不小心,就会报lc.exe=-1的错误

这里我们都用到了

C1FlexViewerPane

C1FlexReport

所以我们在license文件中写如下注册信息

C1.Win.FlexReport.C1FlexReport, 
C1.Win.FlexReport.4 C1.Win.FlexViewer.C1FlexViewerPane, C1.Win.FlexViewer.4

至此,我们就大功告成了。

示例源码下载
本文中的示例源码,请点击此处下载

ComponentOne Enterprise:.NET开发的“瑞士军刀”,功能全面、简单易用的 Visual Studio 组件集

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/110531.html

相关文章

  • .NET 开源免费图表组件库,Winform,WPF 通用

    摘要:另外作者在年被诊断出患有癌症外周细胞淋巴瘤然后在年开始接受治疗,包括化疗放疗和自体骨髓移植好消息是整个手术的过程还算顺利。截至到目前作者仍然保持着很好的状态感谢作者带来如此强大的图表组件最后也祝愿作者能够越来越好也能越来越好同样, 填充图表数据, 完成!double[] dataX = new double[] { 1, 2, 3, 4, 5 };double[] dataY = new d...

    不知名网友 评论0 收藏0
  • 新的尝试!ComponentOne WinForm 和 .NET Core 3.0

    摘要:运行步骤第步考虑到预览版中的工具有限,缺少的项目模板,我们将使用命令提示符创建一个新项目。打开命令提示符并运行以下命令上述代码会创建一个名为的新项目。 在微软 Build 2018 开发者大会上,.NET 团队公布了 .NET Core 的下一个主要版本 .NET Core 3.0 的规划蓝图:.NET Core 3将开始支持Windows桌面应用程序,包括Windows Form、W...

    赵春朋 评论0 收藏0
  • 全功能 .NET 控件集 ComponentOne 2018V2正式发布,提供轻量级的 .NET B

    摘要:葡萄城的控件和软件产品在国内外屡获殊荣,在全球被数十万家企业学校和政府机构广泛应用。 ComponentOne Enterprise 是一款专注于企业应用 .NET开发的 Visual Studio 组件集,包含 300多种 .NET控件,支持 WinForm,WPF,UWP,ASP.NET MVC 等七个 .NET开发平台,具备表格数据管理、数据可视化、报表和文档、日程安排、输入和编...

    Zoom 评论0 收藏0
  • 【图解】FlexGrid Explorer 全功能问世

    摘要:新的还是秉承原来的和的风格,充分展示了布局功能的强大。本次更新中我们额外追加了余种用法,目前中已经包含了几乎所有企业常见功能示例。目的就是为广大开发人员提供最全面最美观的示例,最大程度的减轻您的使用成本。 前言 在去年的时候,我们推出了FlexGrid Demo,包含了FlexGrid的常用功能,如分组、滚动、冻结、自定义单元格类型、搜索面板、表格过滤器、树形结构、合并单元等,目前我们...

    MyFaith 评论0 收藏0
  • 支持VS2017!ComponentOne 2017V1全新发布

    摘要:它帮助用户体验短期价格势头。布林线覆盖系列布林线波动指标显示正常价格波动的上限和下限。斐波那契工具工具可以计算和绘制在金融图表中有用的各种警报级别,例如上升趋势和下降趋势。 ComponentOne Studio Enterprise 是一款专注于企业应用的.NET全功能控件套包,支持WinForms、WPF、UWP、ASP.NET MVC等多个平台,帮助在缩减成本的同时,提前交付丰富...

    lewif 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<