WindowInteropHelper.EnsureHandle 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
如果尚未创建窗口的 HWND,则创建 HWND。
public:
IntPtr EnsureHandle();
[System.Security.SecurityCritical]
public IntPtr EnsureHandle ();
public IntPtr EnsureHandle ();
[<System.Security.SecurityCritical>]
member this.EnsureHandle : unit -> nativeint
member this.EnsureHandle : unit -> nativeint
Public Function EnsureHandle () As IntPtr
返回
IntPtr
nativeint
表示 HWND 的 IntPtr。
- 属性
注解
EnsureHandle如果要将创建 (HWND) 窗口句柄与托管 Window的实际显示分开,请使用 方法。 如果自动化客户端可以完成其任务,而无需显示窗口,这非常有用。
如果尚未创建本机窗口,此方法将创建本机窗口,设置 Handle 属性并返回 HWND。 如果已创建本机窗口,则返回现有本机窗口的句柄。
如果本机窗口是由于调用此方法而创建的,则会引发 事件 SourceInitialized 。
在 Handle 调用 方法后 EnsureHandle 查询 属性将返回现有的窗口句柄。 在调用 方法之前 Show ,视觉树不会附加到窗口。
EnsureHandle多次调用 方法不会创建新窗口句柄。 EnsureHandle在句柄已经通过调用 方法创建时调用 Show 方法不会创建新的窗口句柄。 仅当调用 方法时不存在句柄时, EnsureHandle 才会创建本机窗口。
使用本机窗口 API 通过 p/invoke 设置的窗口属性可能不会显示在托管窗口 API 中。 例如,如果在调用 方法后 EnsureHandle 使用本机MS_EX_TOPMOST标志将窗口设置为最顶部, Topmost 则不保证 属性反映本机设置。