wpf window set window的owner

 
  [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();

才有效果



posted @ 2014-05-22 11:14  法的空间  阅读(897)  评论(0编辑  收藏  举报