如何检查WPF控件是否托管在WinForms中?
问题描述:
我有一个WPF控件,它在某些情况下作为WPF应用程序的组件存在,另一个控件在Windows窗体中。我如何检测第二种情况(WPF控件是嵌入在WinForms中)?如何检查WPF控件是否托管在WinForms中?
答
试试这个:
HwndSource wpfHandle = PresentationSource.FromVisual(this) as HwndSource;
if (wpfHandle != null)
{
ElementHost host = System.Windows.Forms.Control.FromChildHandle(wpfHandle.Handle) as ElementHost;
if(host != null)
{
//hosted in ElementHost...
}
}
我想尝试''Window.GetWindow(CTRL);''和希望它返回null,在托管环境中。 –