如何在WPF中调用Winform控件

WPF闪烁预警动画的控件制作及winform调用WPF控件的方法 阅读详情

转自:http://www.cnblogs.com/masterfy/archive/2009/04/06/1430111.html

http://hi.baidu.com/aqiang000000/blog/item/05507e3692c9b4daa3cc2ba3.html

功能实现主要分三步:
1、添加两个引用:WindowsFormsIntegration.dll (负责整合WPF和Windows)、System.Windows.Forms.
2、在 XAML文件中添加两个引用(粗体部分):

<Window x:Class="CrossBowDemo.MainWindow"
     xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
     xmlns:wf ="clr-namespace:System.Windows.Forms;assembly=System.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="NoResize"
     Loaded="WindowLoadedHandler"
     >

</Window>


3、在XAML编码区实现你想添加的控件:

    原文添加的是 DataGridView控件:

    < wfi:WindowsFormsHost >
       
<!-- Set some properties on Windows Forms control in Xaml -->
      
< wf:DataGridView x:Name ="dataGridView" Dock ="Fill" SelectionMode ="FullRowSelect" />
    
</ wfi:WindowsFormsHost >


效果图:



本人添加的是 NumericUpDown控件:

     < Grid Height ="0" Margin ="146,0,0,116" MinHeight ="20" MinWidth ="20" Name ="grid1" VerticalAlignment ="Bottom" HorizontalAlignment ="Left" Width ="50" >
      
< wfi:WindowsFormsHost >
        
< wf:NumericUpDown x:Name ="nupCounter" Maximum ="100" ></ wf:NumericUpDown >
      
</ wfi:WindowsFormsHost >
    
</ Grid >


效果图:



在本人的代码中Grid的作用相当于Web页面中用来布局的Table。 此处加上Grid是为了方便移动控件的位置。

 

 

另一种方法是在后台添加,下面转载自:http://www.2cto.com/kf/201212/173291.html

wpf 中加载winform控件(不是窗体,必须是继承自Control类)

using System.Windows.Controls;
using System.Windows.Forms.Integration;
using Fibonacci;  //这个好像不用加

namespace WPFHost
{
    /// <summary>
    /// Interaction logic for Page1.xaml
    /// </summary>
    public partial class Page1 : Page
    {
        private readonly MainForm mainForm = new MainForm();

        public Page1()
        {
            InitializeComponent();

            //Create a Windows Forms Host to host a form
            WindowsFormsHost windowsFormsHost = new WindowsFormsHost();
           
            stackPanel.Width = mainForm.Width;   //stackPanel是前台xaml的一个控件
            stackPanel.Height = mainForm.Height;
            windowsFormsHost.Width = mainForm.Width;
            windowsFormsHost.Height = mainForm.Height;
            mainForm.TopLevel = false;

            WindowsFormsHost.Child = mainForm;

            stackPanel.Children.Add(windowsFormsHost);
        }
    }
}

 

 最后,关于加过去的winform主题回到旧的主题的样式的问题:

这个问题解决了,重装启动事件就行了。
 protected override void OnStartup(StartupEventArgs e)
        {
            // Raises the Startup event.
            base.OnStartup(e);

            System.Windows.Forms.Application.EnableVisualStyles();
        }

WPF调用winform(基于GDI)的控件和WPF窗体无边框的处理 WPF调用winform(基于GDI)的控件和WPF窗体无边框的处理 这是我在做流媒体播放器的时候遇到的问题,WPF不能调用基于GDI的控件让我很是头疼,市面上也仅仅只有一个VCL播放内核可以让WPF调用,其它的内核(例如:迅雷影音的内核 Aplayer)就不行了?经过一天的查询和测试让我成功的调用了播放内核 Aplayer,请看下面代码和解释。 1、创建一个 WPF 项目 2、添加引用 阅读详情

相关推荐

C# winform 调用 WPF用户控件及控件交互

C# winform 调用 WPF用户控件及控件交互

weixin_43623326的博客 2222

vs C# wpf 如何引入(导入)库、dll 图示教程 一步一步 教你wpf导入库

vs C# wpf 如何引入(导入)库、dll 图示教程 一步一步 教你wpf导入库

wyx100的专栏 1万+

System.Windows.Forms.DataVisualization.dll

VS 2008 中使用的图形插件,通过此DLL数据充分展现出来

WPF 和 WinForm 页面互嵌入,效果丑

网上查了,没有好的答案。这里,把自己得到的结论写一下。照例,还是简洁一些,不写废话。

wukongabc_123的博客 2257

ALTERA MAX10 FPGA 串口远程升级实战:从原理到烧录的避坑指南

本文详细解析了ALTERA MAX10 FPGA如何通过串口实现远程升级。文章从工程师实战经验出发,深入剖析了MAX10片内Flash的双镜像备份原理、CONFIG_SEL引脚启动机制,并重点介绍了使用On-Chip Flash IP核进行擦写操作的核心流程。同时,提供了从Quartus工程配置、RPD文件生成、串口协议设计到驱动代码编写的完整避坑指南,旨在帮助开发者稳定、高效地完成远程升级功能部署。

weixin_29197699的博客 273

RK3568部署YOLOv8的7种方法对比:量化vs非量化的性能实测与优化建议

本文针对RK3568平台,深度对比了YOLOv8模型的七种部署方法,重点分析了量化与非量化策略的性能差异。通过实测数据,详细评估了不同方法在推理速度、CPU占用、内存消耗及模型精度上的表现,并提供了从模型结构调整到系统级优化的具体建议,为边缘AI部署选型提供实用参考。

weixin_29099217的博客 527

将WPF窗体嵌入到Winform窗体中

将WPF窗体嵌入到Winform窗体中

Mark_mwl的博客 1671

Python 爬虫进阶:爬取 APP 数据(Charles 抓包 + Requests)

本文详细介绍了APP数据爬取的完整技术方案。首先通过Charles抓包工具配置HTTPS代理和证书,解析APP通信协议;然后分析请求参数、反爬机制和动态签名生成规则;接着使用Python的Requests库实现模拟请求、分页爬取和数据存储;最后针对证书问题、Token失效等常见问题提供解决方案。文章强调抓包分析、参数逆向和请求模拟三大核心技术,同时提醒开发者需遵守法律法规,合理控制爬取频率。该方案适用于移动端数据采集场景,为无法直接获取网页数据的情况提供了有效解决方案。

2503_91057718的博客 2120

C# wpf 嵌入winform控件

wpf的强大界面能力,再加上winform的性能以及灵活性,那基本上什么界面都能够做的很好。比如视频渲染用winform,功能按键用wpf,就能达到性能和界面效果和完美结合。wpf有直接的控件支持嵌入winform控件,使用方法也很简单,网上很容易搜到。之所以编写这篇文章,主要用于记录。

codeofcc的博客 4094

【11】科曼医疗——科曼医疗 嵌入式--面试,校招,面试问答记录

科曼医疗嵌入式校招面试记录:3位面试官分别考察应用层技术、底层技术和HR面。技术问题涵盖C++特性(多态、虚函数、指针与引用区别)、内存管理(malloc与new对比)、嵌入式基础(51最小系统、IIC/SPI协议)及项目经验(智能黑板擦专利项目)。同时考察了Linux使用经验、STM32开发及嵌入式操作系统认知。最后环节应聘者询问了开发环境及面试流程。面试内容全面覆盖嵌入式开发核心知识点。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 1248

PCL:实现 PPF估计(附完整源码)

PCL:实现 PPF估计(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 716

WinForm中调用WPF控件

WinForm中调用WPF控件 在WinForm中可以使用WPF中的控件,或者由WPF创建的自定义控件; 步骤1:创建WinForm工程; 步骤2:在WinForm工程的解决方案资源管理器中,在刚刚创建的WinForm解决方案中新建或者添加现有的WPF用户控件工程; 步骤3:在WPF中创建自定义的控件,或者添加WPF控件到面板上; 步骤4:在WinForm面板上添...

dinghutian1305的博客 563

总结个人关于雷达样式的见解(脉内脉间调制)

概述 雷达有各种各样的脉内脉间调制样式,对于雷达的设计者来说,不外乎三个目的: 1、增加雷达性能,如提高测距精度,增大侦察距离等; 2、雷达的工作机制决定雷达必须采用此种样式的调制,如有些SAR雷达为保证径向测距精度,需要使用脉内宽带调制信号; 3、降低雷达被电子战装备截获的概率,也就是LPI设计。 对于雷达对抗方,则只会观察到信号存在脉内及脉间的调制。对于一般的雷达信号,通常只采用脉内调制,脉间频率调制,脉间PRI调制。 脉间调制类型 1、PD雷达的脉间特征 雷达进行脉间调制的主要是PRI..

年糕的博客 3万+

Winform调用WPF三维控件

通过调用WPF控件,实现Winform上三维模型的显示,每个模型的零件都可以控制运动。

qq_34824242的博客 870

史上最全工商银行核心系统建设历程:从“数据集中”到“ECOS”2.0,见证银行业信息科技跨时代发展征程

ECOS工程的直接成果是建成了工商银行第五代信息系统,即从单一核心银行系统到去核心化开放生态系统,率先开启了以智能化、开放化为特征,数据驱动引领经营模式变革,创新提出了一整套国际领先的分布式开放生态银行系统建设方案,在大型银行全分布式系统架构、主机下移、银行系统生态化转型、大规模交易型分布式数据库等多个领域再次实现“0到1”的突破,建成了具备国际领先水平的全分布式开放生态银行系统,继续勇立数字化转型潮头,推动高质量发展再上新台阶。工商银行的业务连续性管理水平实现了跨越式发展,有力地保障了业务发展。

银行信息系统应用架构详解 824

绕过App某加密企业版加固Frida检测

可以发现dlsym函数加载了两次pthread_create,可以认为这两个进程(或某一个进程)是和Frida的检测有关的,于是为了绕过检测,我们可以让它加载一个虚假的pthread_create函数,得到一个空结果绕过检测。成功绕过了libnllvm1717052779924.so的检测,又到了libface_nllvm.so的检测,使用同样的方法去绕过libface_nllvm.so的检测,代码我这里就不上了,大家可以自己修改以下。dlsym()函数的作用是在已经加载的动态链接库中查找指定符号的地址。

墨痕诉清风的博客 1620

Winform调用WPF控件资源文件介绍:实现跨框架控件融合

Winform调用WPF控件资源文件介绍:实现跨框架控件融合 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在当代软件开发中,多种UI框架的混合使用变得越来越普遍,以便充分发挥各自的优势。Winform调用WPF控件资源文件介绍项目,正是一个专注于这一融合需求的开源项目。它主要展示了如何在Winform应用程序中引入并使用WPF的DataGrid控件,为开发者提供了一...

gitblog_06707的博客 631

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Winform调用WPF控件资源文件介绍

Winform调用WPF控件资源文件介绍 去发现同类优质开源项目:https://gitcode.com/ 此资源文件为Winform调用WPF控件演示,主要展示了在Winform应用程序中如何引入并使用WPF的DataGrid控件,以及如何实现控件的刷新操作。 文件内容 示例代码:提供完整的Winform调用WPF DataGrid控件的代码示例,帮助开发者快速掌握调用方法。 操作说明:详细介...

gitblog_06716的博客 319

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

解决WPF调用Winform控件置顶问题

在WPF中通过WindowsFormsHost调用Winform控件,由于WPF控件的空域问题,会出现Winform控件始终置顶的问题。此时想要在Winform控件上层显示WPF控件是办不到的,会被Winform控件遮盖。 此时的button按钮是看不到的,因为被Host容器遮盖了,即便把背景调成透明也一样看不到。 要解决这个问题,可以借助一个三方库Microsoft.DwayneNeed,在WindowsFormsHost外面再包一层interop:AirspaceDecorator就可以解决这个

www的博客 2231

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

winform和WPF控件使用、事件调用上的不同

1.winform存在"ShowForm.designer.cs"文件,如下图所示自己写的窗口关闭的时间函数,需在该文件内手动添加调用 2.WPF没有上面的文件,取而代之的是“MainWindow.g.i.cs”,下文是对应的代码,不过该文件的内容是自动生成的。 自己要添加或者修改的话,需要在“MainWindow.xaml”上修改,如下............

heihei233的博客 413

WPF与WINFORM调用其他界面控件方式

.Invoke()是 C# 中用于安全调用委托 / 事件的语法,核心目的是在委托为null时避免空引用异常,同时简化代码。这在处理事件、多线程回调等场景中非常常用。

qq_52273284的博客 845

Winform中调用WPF控件

有两种调用方式,在使用之前都将控件“ElementHost”添加到 Form 中: 方式一: 直接声明wpf中控件(使用 Windows.Controls) Public Class Form1 Dim txt As Windows.Controls.TextBox = New Windows.Controls.TextBox() Private Sub Form...

weixin_34368949的博客 1417

WPF中调用Winform控件

【代码】WPF中调用Winform控件。

Major_S的博客 729

WPF调用Winform控件具体技巧

<br />WPF开发工具可以帮助我们实现许多功能。对于开发者而言,这是一个具有重要意义的开发工具。我们在这里就为大家介绍一下有关WPF调用Winform控件的相关实现方法。<br /> <br /> <br />WPF调用Winform控件实现主要分三步:<br />WPF调用Winform控件1、添加两个引用:WindowsFormsIntegration.dll (负责整合WPF和Windows)、System.Windows.Forms.<br />WPF调用Winform控件2、在 XAML文件中

Mr. Mao的专栏 7878

winform/wpf实现调用原生的控件预览pdf

备注:此方式是PdfiumViewer调用的, PreviewPdfHelper.PrintWithPdfium(OutputPdfFilePath);直接调用即可弹出预览窗体。

刘联其的个人分享 389
上一篇: WPF之DataGrid应用--几个例子
下一篇: WPF透明窗体制作
HNFXS985
博客等级 码龄14年 219粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值