设置WPF窗体作为Winform的Owner

在某些特殊情况下,我们会需要用到 Winform.owner = WpfWindows 的形式。

通常情况下 ,在wpf 里调用winform窗体,我们会这样写:

Form frm =  new Form;
...省去部分窗体设置。
frm.showDialog();

但是这样的话,一个软件会有两个甚至多个窗体(在任务栏,任务视图里)
为保证整个软件在任务栏和任务视图只显示一个窗体,我们可以做以下两步操作:

  1. 设置 winform 窗体属性ShowInTaskbar = false;
  2. 在wpf里调用winform时加上这一段代码:
Form frm =  new Form;
...省去部分窗体设置。
IntPtr handle = (new System.Windows.Interop.WindowInteropHelper(this)).Handle;
System.Windows.Forms.NativeWindow ownerWindow = new System.Windows.Forms.NativeWindow();
ownerWindow.AssignHandle(handle);
frm.showDialog(ownerWindow);
	(即:将WPF 窗体设置为Winform窗体Owner)

参考资料:指定System.Windows.Forms.Form的Owner为System.Windows.Window

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值