winform

WPF和WINFORM的互操作

北慕城南 提交于 2019-12-09 03:55:41
在WPF中使用Winform控件 <Window x:Class= "WPFApplication.Window1" xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml" xmlns:winforms= "clr-namespace:WindowsFormsControl;assembly=WindowsFormsControl" xmlns:my= "clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration" Title= "Window1" Height= "300" Width= "300" > <Grid> <my:WindowsFormsHost Name= "windowsFormsHost1" > <winforms:UserControl1 x:Name= "myControl" ButtonText= "Click me!" /> </my:WindowsFormsHost> </Grid> </Window> 其中xmlns:winforms=…为导入命名空间和程序集名称

在WinForm程序中嵌入ASP.NET[转]

一世执手 提交于 2019-12-09 03:53:48
在WinForm程序中嵌入ASP.NET 现在的流行趋势是桌面程序Web化,Web程序桌面化,呵呵。最终目标就是你中有我,我中有你。例如MSN Explorer就是一个很好的展示,让用户在使用的时候分不清什么时候是在本地什么时候是在网络。而这类程序往往需要有一个后台服务器如IIS的支持,这对大多数桌面应用来说too heavy了。本着简单就是美的设计思想,这里给出一个轻量级的解决方法,把ASP.NET嵌入到普通WinForm桌面程序中去。 因为安全以及其它一些方面的原因,在使用ASP.NET引擎之前,必须建立一个新的 AppDomain 。简单的方法是直接使用 ApplicationHost.CreateApplicationHost 函数为指定的虚拟目录和物理路径建立ASP.NET引擎宿主的实例,如 // should create a subdirectory ./bin and copy the assembly to it static public WebHost Create(string name, string path) { if(!name.StartsWith(new string(Path.AltDirectorySeparatorChar, 1))) { name = Path.AltDirectorySeparatorChar + name; }

WPF与WinForm开发有什么区别?

筅森魡賤 提交于 2019-12-09 03:50:55
转自 http://hi.baidu.com/leoliu83/blog/item/1d1a4a66dcb41134aa184cfd.html WPF开发于WinForm之后,从技术发展的角度,WPF比WinForm先进是不容置疑的。我觉得WPF相比于WinForm有下面的一些较好的特性: 解决Window Handle问题 在Windows GDI或WinForm开发中复杂的GUI应用程序,会使用的大量的控件,如Grid等。而每个控件或Grid cell都是一个小窗口,会使用一个Window handle,尽管控件厂商提供了很多优化办法,但还是会碰到Out of Memory或"Error Create Window handle",而导致程序退出。 WPF彻底改变了控件显示的模式,控件不在使用窗口,也就不会占用Window handle。理论上,如果一个WPF只有一个主窗口的话,WPF只会使用一个Window handle(如果忽略用于Dispatcher的隐藏窗口的话)。所以WPF GUI程序不会出现Window handle不够用的情况。 多线程的处理 在WinForm程序开发时,最头疼的一个问题就是,worker线程修改控件的属性而导致程序崩溃,而且这种非法操作并不是每次都失败。WinForm控件提供了InvokeRequired属性来判断当前线程是不是控件创建线程

c#Winform中调用WPF窗体

血红的双手。 提交于 2019-12-09 03:50:40
在WinForm中是可以使用WPF中的控件(或者由WPF创建的自定义控件) 1.新建一个winform项目; 2.在解决方案上新建一个wpf项目; 如图: 如果有如下错误,就在winform中的引用添加System.xaml的引用即可: 错误 1 类型“System.Windows.Markup.IComponentConnector”在未被引用的程序集中定义。必须添加对程序集“System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的引用。 在winform中添加WPF项目下引用的三个程序集:PresentationCore,PrentationFramework,WindowsBase,以及wpf项目WpfApplication1的引用,如图: 在winform的Form1窗体的cs代码中添加using WpfApplication1的引用: 在winform中添加的button按钮的Click事件中New一下Wpf的窗体show出来即可显示: private void button1_Click(object sender, EventArgs e) { WpfApplication1.MainWindow wpfwindow = new WpfApplication1

在WPF中使用WinForm控件方法

你说的曾经没有我的故事 提交于 2019-12-09 03:42:20
下面以在 Wpf 中添加 ZedGraph (用于创建任意数据的二维线型、条型、饼型图表的一个开源类库)控件,说明在 WPF 中使用 Winform 控件的方法。 1、 首先添加对如下两个 dll 文件的引用: WindowsFormsIntegration.dll , System.Windows.Forms.dll 。 2、 由于要用到 ZedGraph 控件,所以也要添加对 ZedGraph.dll 的引用。 3、 在要使用 WinForm 控件的 WPF 窗体的 XAML 文件中添加如下内容(选中部分): 即: xmlns : wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration" xmlns : wf ="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" xmlns : zedgraph ="clr-namespace:ZedGraph;assembly=ZedGraph" 4、 在 WPF 的容器控件内如 Grid 内首先要添加 WinForm 控件的宿主容器,用于衔接 WPF 和 WinForm , 对应 XAML 如下: < Grid > < wfi :

在WPF中添加WINFORM控件的方法

两盒软妹~` 提交于 2019-12-09 03:41:53
在wpf程序中添加window的程序集引用:System.Windows.Forms.dll和WindowsFormsIntegration.dll xmlns:wfi =" clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration " xmlns:winForms =" clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms " < wfi:WindowsFormsHost > < winForms:XX >...</ winForms:XX > </ wfi:WindowsFormsHost > WindowsFormsHost:允许在WPF中承载WINFORM控件的元素。 来源: CSDN 作者: Fernweh_xy 链接: https://blog.csdn.net/Fernweh_xy/article/details/78525214

在WinForm中屏蔽中文输入法

冷暖自知 提交于 2019-12-09 03:26:07
在WinForm的开发中,有时有些特殊的要求。例如:在某个Form上彻底屏蔽中文输入法,使之不能切换到中文输入,不能进行中文输入。   这个问题看上去简单,实现起来并没有想象中的简单。下面,把我做的几个实验依次列举,就会发现,其实实现起来还是有一定难度的。   实验一:     1、新建项目,建立两个Form,分别为Form1、Form2。Form1为启动Form。     2、Form1上有一个TextBox和Button。         点击Button,执行下面语句            Me .Hide()           Form2.Show()     3、Form2上有一个TextBox, TextBox的ImeMode属性设为close ,意思为关闭输入法模式。TextBox.ImeMode = ImeMode.Close;         在Form2的FormClosed事件中执行下面语句。           Form1.Show()   好,现在来测试这个实验。嗯,很不幸,在Form2中TextBox中很顺利的切换了中文输入法,输入了中文。试验失败。   实验二:     继续实验一,找了相关的资料,发现有一个InputLanguageChanging事件,似乎可以控制输入法的切换。     4

winform 单击textbox在控件附近弹出窗体(比如键盘)

被刻印的时光 ゝ 提交于 2019-12-09 03:23:18
直接上代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication { public partial class Form2 : Form { private Point mPoint = new Point(); public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { } //可以拖动 private void FrmKeyBoard_MouseDown(object sender, MouseEventArgs e) { mPoint.X = e.X; mPoint.Y = e.Y; } private void FrmKeyBoard_MouseMove(object sender, MouseEventArgs e) { if (e.Button ==

Winform组合框ComboBox无法获取输入焦点问题

烂漫一生 提交于 2019-12-09 03:20:51
事情是这样的,我使用VS2010建了一个:Windows窗体控件库 工程, 然后添加了用户控件,在用户控件上面放了一个ComboBox控件, 然后直接运行工程,发现ComboBox在输入文字时,很多次都是输入不成功, 后来猜测应该是测试工具的问题(直接运行控件工程,VS2010打开了一个测试工具来加载我们的控件)。 解决方法: 在新建一个测试控件的工程,直接在测试工程中放上我们的控件,然后运行测试工程即可。 即不要直接运行控件工程。。。 来源: CSDN 作者: friendan 链接: https://blog.csdn.net/friendan/article/details/54095843

WinForm控件与WPF控件的交互

为君一笑 提交于 2019-12-09 03:18:35
这个问题其实也可以理解为: 怎样在WPF/XAML中使用Winform中的控件(如PictureBox)? 首先看看XAML代码: (注意下面加粗的部分) <Window x:Class="WindowsApplication1.Window1" xmlns=" http://schemas.microsoft.com/winfx/2006/xaml/presentation " xmlns:x=" http://schemas.microsoft.com/winfx/2006/xaml " Title="WinForm控件与WPF控件的交互" Height="400" Width="600" xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" > <StackPanel> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Image Source="Girl.jpg" MaxHeight="300" Grid.Column="0" Name="WPFImage"/> <WindowsFormsHost Grid.Column="1"