Exemple #1
0
        public void DeferWindowPos(IWindow window, IWindowLocation location)
        {
            var flags = Win32.SWP.SWP_FRAMECHANGED | Win32.SWP.SWP_NOACTIVATE | Win32.SWP.SWP_NOCOPYBITS |
                        Win32.SWP.SWP_NOZORDER | Win32.SWP.SWP_NOOWNERZORDER;

            if (location.State == WindowState.Maximized)
            {
                _toMaximize.Add(window);
                flags = flags | Win32.SWP.SWP_NOMOVE | Win32.SWP.SWP_NOSIZE;
            }
            else if (location.State == WindowState.Minimized)
            {
                _toMinimize.Add(window);
                flags = flags | Win32.SWP.SWP_NOMOVE | Win32.SWP.SWP_NOSIZE;
            }
            else
            {
                _toNormal.Add(window);
            }

            // Calculate final position for window
            var offset = window.Offset;
            int X      = location.X + offset.X;
            int Y      = location.Y + offset.Y;
            int Width  = location.Width + offset.Width;
            int Height = location.Height + offset.Height;

            Win32.DeferWindowPos(_info, window.Handle, IntPtr.Zero, X, Y, Width, Height, flags);
        }
Exemple #2
0
 public void ShowInLocation(IWindowLocation location)
 {
     this.Invoke((MethodInvoker)(() =>
     {
         this.Location = new Point(location.X, location.Y);
         this.Height = location.Height;
         this.Width = location.Width;
         this.Show();
         _showTimer.Stop();
         _showTimer.Start();
     }));
 }
Exemple #3
0
        public void DeferWindowPos(IWindow window, IWindowLocation location)
        {
            var flags = Win32.SWP.SWP_FRAMECHANGED | Win32.SWP.SWP_NOACTIVATE | Win32.SWP.SWP_NOCOPYBITS |
                        Win32.SWP.SWP_NOZORDER | Win32.SWP.SWP_NOOWNERZORDER;

            if (location.State == WindowState.Maximized)
            {
                _toMaximize.Add(window);
                flags = flags | Win32.SWP.SWP_NOMOVE | Win32.SWP.SWP_NOSIZE;
            }
            else if (location.State == WindowState.Minimized)
            {
                _toMinimize.Add(window);
                flags = flags | Win32.SWP.SWP_NOMOVE | Win32.SWP.SWP_NOSIZE;
            }
            else
            {
                _toNormal.Add(window);
            }

            Win32.DeferWindowPos(_info, window.Handle, IntPtr.Zero, location.X, location.Y, location.Width, location.Height, flags);
        }