好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

ComponentOne使用技巧——从Winform穿越到W

概述

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

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

Step 1

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

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

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

<Window?x:Class="CrossBowDemo.MainWindow"
xmlns:wfi?="clr-namespace:Sy stem .Windows.Forms.Integration;assembly=WindowsFormsIntegration"
xmlns:wf?="clr-namespace:Sy stem .Windows.Forms;assembly=Sy stem .Windows.Forms"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Hosting?Windows?Forms?Control?In?WPF"
Height="300"
Width="650"
ResizeMode=" nor esize"
Loaded="WindowLoadedHandler">
?<?/Window>

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

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

<wfi: windowsformshost >
????????<wf:DataGridView?x:Name="Dg"??Dock="Fill"?SelectionMode="FullRowSelect">????????????
????????</wf:DataGridView>
????</wfi: windowsformshost >

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

Setp2

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

1.Winform下FlexReport的模板

2.相关引用

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

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

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

<Grid>
????????<wfi: windowsformshost >
????????????<cc11:C1FlexViewerPane???x:Name="flexViewerPane"??></cc11:C1FlexViewerPane>
????????</wfi: windowsformshost >
????</Grid>

Setp3

我们在 后台 加载报表

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

????????_report?=?new?C1FlexReport();

????????//?load?report?de Finitio n?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

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

示例×××

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

关于葡萄城:

赋能开发者!葡萄城公司成立于 1980 年,是全球领先的集开发工具、商业智能 解决方 案、管理系统设计工具于一身的软件和服务提供商。西安葡萄城是其在中国的分支机构,面向全球市场提供软件研发服务,并为中国企业的信息化提供国际先进的开发工具、软件和研发咨询服务。葡萄城的控件和软件产品在国内外屡获殊荣,在全球被数十万家企业、学校和政府机构广泛应用。

小编说

以上是 为你收集整理的 ComponentOne使用技巧——从Winform穿越到W 全部内容。

如果觉得 网站内容还不错,欢迎将 推荐给好友。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

Win11右键设计反人类?教你恢复Win11完整右键菜单方法

微软已经在10月5日发布了Windows 11正式版,很多朋友也已经升级了。不过对于Win11的一些新设计,并不是所有人都能适应的,例如新的右键快捷菜单,就不少朋友表示接受不了。

win11右键怎么设置原来的模样 win11右键菜单改回传统模式操作方法

今天小编就来为大家具体讲一讲win11右键菜单改回传统模式教程,需要的朋友一起看看。

win10右键新建卡顿2023解决方法

在使用我们的鼠标在桌面新建文件夹的时候,总是会出现一些卡顿延迟的情况,对于急性子来说,简直非常不友好没那么这个问题该怎么去解决呢,其实重装鼠标驱动或者使用命令代码都能解决。

win7升级win10会变流畅吗

在软件宣布对win7系统停止支持,将不会对win7系统有任何的更新和修复,大家在继续使用win7系统会有很大的风险,如果电脑支持我们升级win10系统运行起来也不会有卡顿的哦!

win7升级win10错误代码0x80072f8f-0x20000解决方法

win7系统目前微软已经不支持更新和修复出现的问题了,大家都在把win7升级为win10系统。其中出现错误代码0x80072f8f-0x20000该如何解决?这里帮助大家详细讲解一下解决方法,希望对大家有帮助!

win10右键显示设置打不开怎么办

有很的用户们在重装系统之后,或者不小心对系统文件进行了清理,导致在使用win10系统的时候,鼠标右键无法打开显示设置了,这时候只要先执行命令,再去服务中打开相关内容即可。

win7升级win10需要多少内存

win7在微软停止服务之后大家为了电脑更加安全,很多用户都选择升级为win10系统。在升级之前大家想了解一下win10系统需要多少内存才支持,这里详细讲解win10需要的电脑配置。

win11跳过联网激活方法

很多预装了win11的电脑在首次开机的时候会需要联网激活,但是激活后我们就无法验机确认了,这时候可以通过按下快捷键,再使用命令代码的方法来跳过联网激活。

win11跳过登录微软账户

由于win11开启需要用微软账户登录,而使用微软账户登录需要联网,但是不少朋友新机开机时又跳过了联网,这时候会出现无法进入系统的情况,其实我们只要随便输入一个不存在的账户就可以了。

Win10鼠标指针抖动怎么办?Win10鼠标指针抖动的解决方法

最近有不少小伙伴在使用Win10电脑的时候发现自己的鼠标指针会自动抖动,经常会在使用的时候跑偏掉,那么遇到这种情况要怎么办呢?下面就和小编一起来看看有什么解决方法吧。Win10鼠标指针抖动的解决方法1、首先检查一下是不是鼠标本身的原因,将鼠标插到别的电脑上试一下会不会出现鼠标光标乱跑的问题。依然出现...

查看更多关于ComponentOne使用技巧——从Winform穿越到W的详细内容...

  阅读:19次