[DllImport("user32.dll")]
public static extern IntPtr GetAncestor(IntPtr hWnd, int flags);
var dialog = new CustomiDalog();
window = new Window();
window.Content = dialog;
window.ShowInTaskbar = false;
window.WindowStartupLocation = WindowStartupLocation.CenterOwner;
window.SizeToContent = SizeToContent.WidthAndHeight;
window.WindowStyle = WindowStyle.ToolWindow;
var elementSource = HwndSource.FromVisual(rtb) as HwndSource;
if (elementSource != null)
{
int GA_ROOT = 2;
IntPtr root = GetAncestor(elementSource.Handle, GA_ROOT);
new WindowInteropHelper(window).Owner = root;
}
注意:如果dialog里面有事件需要注册。。先注册事件再
window.ShowDialog();
才有效果