wpf中调用winform用户控件的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf中调用winform用户控件的方法相关的知识,希望对你有一定的参考价值。

wpf做一个程序,里边添加一个winform用户控件,有个方法叫比如说aaa,怎么在wpf的C#代码里调用这个aaa,声明一个这个控件再调用出错。。

参考技术A WPF的MainWindow的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication2

/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window

public MainWindow()

InitializeComponent();
UserControl1 us = new UserControl1();
this.grid.Children.Add(us.addTextBox()); // 在前台的Grid里 添加Name属性,才可以使用 this.grid.........例如<Grid Name="grid">




winform的userControl的代码

using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Controls;

namespace WpfApplication2

public partial class UserControl1 : System.Windows.Controls.Control

public UserControl1()

InitializeComponent();


private void UserControl1_Load(object sender, EventArgs e)

addTextBox();


public System.Windows.Controls.TextBox addTextBox()


System.Windows.Controls.TextBox tx = new System.Windows.Controls.TextBox();
tx.Text = "111";

return tx;





UserControl1.Designer.cs 这个不改的话,你执行下,报错的地方删掉.
namespace WpfApplication2

partial class UserControl1

/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;

#region 组件设计器生成的代码

/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()




#endregion



因为WPF和WINFORM的控件类型是不一样的,一个是controls里的,一个是forms里的,你在WPF里添加 的话,类型不同,参数不能转换
其实我这样用,已经用的不是WINFORM的控件了,相当于自己建个类,写个创建控件的方法而已本回答被提问者采纳

请问如何在c#中用WPF调用Winform变写的用户控件,知道的请给予解说,谢谢!

我在Winform里面编写了一个用户自定义控件,现在我建立一个WPF项目,如何在该项目中使用Winform编写的用户控件呢 ?

参考技术A 那个 控件 是CS 文件么?如果是 直接 把CS文件引入到项目中 引用相应命名空间即可。 参考技术B 添加WindowsFormsIntegration.dll
用WindowsFormsHost
参考技术C 把自定义控件编译成DLL,然后添加引用 参考技术D http://msdn.microsoft.com/en-us/library/ms751761.aspx

不知道你能不能看懂。这个绝对能帮助你的。我也遇到此问题,解决了。

Hosting a Windows Forms Control in WPF

参考资料:http://msdn.microsoft.com/en-us/library/ms751761.aspx

以上是关于wpf中调用winform用户控件的方法的主要内容,如果未能解决你的问题,请参考以下文章

Winform 中的键盘预览调用 Wpf 用户控件

WinForm中调用WPF控件

C#中如何实现WPF调用Winform中用户自定义的控件呢?

会winform再学wpf简单吗

将 WPF 控件与 WinForms 一起使用

winform 添加wpf 窗体怎么使用