我正在创建一个HUD窗口,用于检查WinForms应用程序中的商业实体。
我想要一个完全不同的窗口样式(最小化内容区域并仅显示TitleBar,没有系统按钮等),所以我为此创建了一个WPF应用程序。
问题是我希望这个窗口在我的WinForms应用程序中“存活”。我不能只将WPF添加为OwnedForm或将主窗体设置为WPF窗口的所有者。
那么,如何实现这一目标呢?
编辑:感谢pst,我找到了答案。这是片段:System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(_inspector);
WindowInteropHelper inspectorHelper = new WindowInteropHelper(_inspector);
inspectorHelper.Owner = this.Handle;
_inspector.Show();
答案 0 :(得分:6)
WPF窗口有一个Win32窗口句柄/上下文。
见WindowInteropHelper。你可以使用Win32(或者可能有WinForms支持吗?)来设置WPF窗口的所有者窗口。请注意,在“源初始化”(?)事件之前句柄不存在。
然而,只使用WinForms,您可以根据需要自定义标题栏(您可以通过Win32覆盖绘图本身,我认为您将失去所有控制框而不会走这么远)。
如果您使用正确的关键字,则有很多关于此主题的Google搜索结果。