WPF与Win32的交互(2)

简介:

为WPF添加Windows窗体控件

1、通过XAML实现 

1)添加WindowsFormIntegration.dll引用

     引用命名空间 xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"

2)通过XAML来实现 

<Grid x:Name= "myGrid" >
     <Grid.RowDefinitions>
         <RowDefinition/>
         <RowDefinition/>
     </Grid.RowDefinitions>
     <WindowsFormsHost>
         <wf:Button Text= "WinForm Button"  Click= "Button_Click" ></wf:Button>
     </WindowsFormsHost>
     <WindowsFormsHost Grid.Row= "1" >
         <wf:CheckBox Text= "WinForm CheckBox" ></wf:CheckBox>
     </WindowsFormsHost>
</Grid>
 
void  button_Click( object  sender, EventArgs e)
{
     MessageBox.Show( "this is the first windows form Button" );
}

 

 2.通过Code来实现

1)使用命名空间

using WindowsForms = System.Windows.Forms;
using System.Windows.Forms.Integration;

2)Code代码

public  partial  class  WPFWithWindowFormControl : Window
    {
        public  WPFWithWindowFormControl()
        {
            this .Loaded += new  RoutedEventHandler(WPFWithWindowFormControl_Loaded);
            InitializeComponent();
        }
 
        void  WPFWithWindowFormControl_Loaded( object  sender, RoutedEventArgs e)
        {
            WindowsFormsHost host = new  WindowsFormsHost();
            WindowsForms.Button button = new  System.Windows.Forms.Button();
            button.Text = "Button1" ;
            button.BackColor = System.Drawing.Color.LightBlue;
            button.Width = 100;
            button.Height = 50;
            button.Click += new  EventHandler(button_Click);
 
            host.Child = button;
            host.VerticalAlignment = VerticalAlignment.Top;
            host.HorizontalAlignment = HorizontalAlignment.Left;
 
            WindowsFormsHost host2 = new  WindowsFormsHost();
            WindowsForms.Button button2 = new  System.Windows.Forms.Button();
            button2.Text = "Windows Form Button2" ;
            button2.BackColor = System.Drawing.Color.Red;
            button2.Width = 100;
            button2.Height = 50;
            
            host2.Child = button2;
            host2.Height = 50;
            host2.Width = 300;
            host2.VerticalAlignment = VerticalAlignment.Bottom;
            host2.HorizontalAlignment = HorizontalAlignment.Right;
 
            myGrid.Children.Add(host);
            myGrid.Children.Add(host2);
           
           
        }
 
        void  button_Click( object  sender, EventArgs e)
        {
            MessageBox.Show( "this is the first windows form Button" );
        }
 
    
    }

前台代码:

    <Grid x:Name="myGrid">  
    </Grid> 

 


本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2011/09/08/2171941.html,如需转载请自行联系原作者

 

目录
相关文章
|
2月前
|
C# Windows 监控
WPF应用跨界成长秘籍:深度揭秘如何与Windows服务完美交互,扩展功能无界限!
【8月更文挑战第31天】WPF(Windows Presentation Foundation)是 .NET 框架下的图形界面技术,具有丰富的界面设计和灵活的客户端功能。在某些场景下,WPF 应用需与 Windows 服务交互以实现后台任务处理、系统监控等功能。本文探讨了两者交互的方法,并通过示例代码展示了如何扩展 WPF 应用的功能。首先介绍了 Windows 服务的基础知识,然后阐述了创建 Windows 服务、设计通信接口及 WPF 客户端调用服务的具体步骤。通过合理的交互设计,WPF 应用可获得更强的后台处理能力和系统级操作权限,提升应用的整体性能。
77 0
|
2月前
|
数据库 C# 开发者
WPF开发者必读:揭秘ADO.NET与Entity Framework数据库交互秘籍,轻松实现企业级应用!
【8月更文挑战第31天】在现代软件开发中,WPF 与数据库的交互对于构建企业级应用至关重要。本文介绍了如何利用 ADO.NET 和 Entity Framework 在 WPF 应用中访问和操作数据库。ADO.NET 是 .NET Framework 中用于访问各类数据库(如 SQL Server、MySQL 等)的类库;Entity Framework 则是一种 ORM 框架,支持面向对象的数据操作。文章通过示例展示了如何在 WPF 应用中集成这两种技术,提高开发效率。
41 0
|
2月前
|
C# 开发者 设计模式
WPF开发者必读:命令模式应用秘籍,轻松简化UI与业务逻辑交互,让你的代码更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,命令模式是简化UI与业务逻辑交互的关键技术,通过将请求封装为对象,实现UI操作与业务逻辑分离,便于代码维护与扩展。本文介绍命令模式的概念及实现方法,包括使用`ICommand`接口、`RelayCommand`类及自定义命令等方式,并提供示例代码展示如何在项目中应用命令模式。
33 0
|
C# Windows
利用WPF创建含多种交互特性的无边框窗体
原文:利用WPF创建含多种交互特性的无边框窗体 咳咳,标题一口气读下来确实有点累,让我先解释一下。另外文章底部有演示程序的下载。
1253 0
|
C# Windows 安全
WinForm控件与WPF控件的交互
原文:WinForm控件与WPF控件的交互 这个问题其实也可以理解为:怎样在WPF/XAML中使用Winform中的控件(如PictureBox)?首先看看XAML代码:(注意下面加粗的部分)              ...
1077 0
|
C# C++
【WPF/WAF】使用System.Windows.Interactivity交互事件
原文:【WPF/WAF】使用System.Windows.Interactivity交互事件 下载System.Windows.Interactivity.dll文件,并引入项目中(在VS项目的引用列表中可以看到)。
2081 0
|
JavaScript C#
wpf CefSharp 与 js交互
原文:wpf CefSharp 与 js交互 通过 NuGet 获取 CefSharp.WpF 组件。  xmlns:cefSharp="clr-namespace:CefSharp.
3903 0
|
C# Shell 前端开发
从PRISM开始学WPF(九)交互Interaction?
原文:从PRISM开始学WPF(九)交互Interaction? 0x07交互 这是这个系列的最后一篇了,主要介绍了Prism中为我们提供几种弹窗交互的方式。 Notification通知式 Prism通过InteractionRequest 来实现弹窗交互,它是一个泛型接口,不同的类型对应不同类型的弹窗方式。
1126 0
|
前端开发 测试技术 C#
WPF MVVM UI分离之《交互与数据分离》
原文:WPF MVVM UI分离之《交互与数据分离》 在我们使用WPF过程中,不可避免并且超级喜欢使用MVVM框架。 那么,使用MVVM的出发点是视觉与业务逻辑分离,即UI与数据分离 诸如下面的问题: 删除操作,假如需要先执行一部分数据的处理,然后删除界面列表中的子项,之后再执行其它数据的处理。
1089 0
|
前端开发 测试技术 C#
WPF MVVM UI分离之《交互与数据分离》
在我们使用WPF过程中,不可避免并且超级喜欢使用MVVM框架。 那么,使用MVVM的出发点是视觉与业务逻辑分离,即UI与数据分离 诸如下面的问题: 删除操作,假如需要先执行一部分数据的处理,然后删除界面列表中的子项,之后再执行其它数据的处理。
1533 0