7

我正在创建一个 HUD 窗口,用于在我的 WinForms 应用程序中检查 biz 实体。

我想要一个完全不同风格的窗口(最小化内容区域并只显示 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();
4

1 回答 1

6

WPF 窗口具有 Win32 窗口句柄/上下文。

请参阅WindowInteropHelper。您可以将它与 Win32 一起使用(或者可能有 WinForms 支持?)来设置 WPF 窗口的所有者窗口。请注意,在“源初始化”(?)事件之前,句柄不存在。

但是,仅使用 WinForms,您可以根据需要自定义标题栏(您可以通过 Win32 覆盖绘图本身,我认为您会丢失所有控制框而不会走这么远)。

如果你使用正确的关键字,会有很多关于这个主题的谷歌搜索结果。

于 2010-06-29T16:56:29.097 回答