在WPF中使用WinForm或自定义控件
2016-05-27 14:22
288 查看
WPF中,好多控件与WinForm是存在差异的,想要使用熟悉的WinForm控件,除了添加必要的System.Windows等系统库之外,还要添加如下的代码,以下是msdn上给的,初步测试没问题 。
<Window ... 这里是你WPF配置的信息,一般不用管
注意:必须在"引用"中添加 System.Drawing 和 WindowsFormsIntegration 这两个库。 (你忘了也没事,VS会提醒你)
自定义的控件的话,
如果是标准的,那就直接添加到控件列表中,拖放使用;
如果不是标准的,那就视情况而定。
例如:
我基于WinForm写了一个播放器的组件 AVPlayer ,在WPF中使用的时候,我选择了这样的方法:
1. 定义一个DockPanel 或 Canvas ;
2. 稍微修改一下界面元素。假设,我们使用的是DockPanel :
<DockPanel Name="m_panel" ... 一大堆配置>
<WindowsFormsHost Name="host" Width="555" Height="282">
</WindowsFormsHost>
</DockPanel>
注:DockPanel 中间添加的元素,宽和高一般都和容器一样,不然多浪费空间~~~
3. 在代码中定义 AVPlayer player = new AVPlayer(); 这里不要忘记添加引用。
4. 把播放组件放到界面上。 host.Child = player;
5. 然后,就可以照常使用了。
如有疑问或错误,请回复指出,非常感谢!!
<Window ... 这里是你WPF配置的信息,一般不用管
1. 下边一句,需要你手动添加。 xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" > <Grid> 2. 这里使用WindowsFormsHost元素来支持使用WinForm控件。
<WindowsFormsHost>
3. 这里添加你的WinForm控件到WPF中使用。 <wf:MaskedTextBox x:Name="mtbDate" Mask="00/00/0000"/> </WindowsFormsHost> </Grid> </Window>
注意:必须在"引用"中添加 System.Drawing 和 WindowsFormsIntegration 这两个库。 (你忘了也没事,VS会提醒你)
自定义的控件的话,
如果是标准的,那就直接添加到控件列表中,拖放使用;
如果不是标准的,那就视情况而定。
例如:
我基于WinForm写了一个播放器的组件 AVPlayer ,在WPF中使用的时候,我选择了这样的方法:
1. 定义一个DockPanel 或 Canvas ;
2. 稍微修改一下界面元素。假设,我们使用的是DockPanel :
<DockPanel Name="m_panel" ... 一大堆配置>
<WindowsFormsHost Name="host" Width="555" Height="282">
</WindowsFormsHost>
</DockPanel>
注:DockPanel 中间添加的元素,宽和高一般都和容器一样,不然多浪费空间~~~
3. 在代码中定义 AVPlayer player = new AVPlayer(); 这里不要忘记添加引用。
4. 把播放组件放到界面上。 host.Child = player;
5. 然后,就可以照常使用了。
如有疑问或错误,请回复指出,非常感谢!!
相关文章推荐
- flex 控件的重要属性
- winform绑定快捷键的方法
- Delphi控件ListView的属性及使用方法详解
- C#实现WinForm捕获最小化事件的方法
- WinForm之BindingSource基础操作实例教程
- 在winform下实现左右布局多窗口界面的方法之续篇
- C#及WPF获取本机所有字体和颜色的方法
- WinForm相对路径的陷阱
- winform实现拖动文件到窗体上的方法
- WPF MVVM示例讲解
- WPF实现时钟特效
- web下载的ActiveX控件自动更新
- WinForm实现程序一段时间不运行自动关闭的方法
- PowerShell中调用WPF生成炫酷窗口实例
- C#采用Winform实现类似Android的Listener
- WinForm自定义控件应用实例
- WinForm实现为TextBox设置水印文字功能
- C# WinForm 判断程序是否已经在运行,且只允许运行一个实例,附源码
- C#设置WinForm中DataGrid列的方法(列宽/列标题等)
- winform 实现控制输入法