zoukankan      html  css  js  c++  java
  • popup non topmost

    public class PopupNonTopmost : Popup
        {
            public static DependencyProperty TopmostProperty = Window.TopmostProperty.AddOwner(
                typeof(PopupNonTopmost),
                new FrameworkPropertyMetadata(false, OnTopmostChanged));
    
            public bool Topmost
            {
                get { return (bool)GetValue(TopmostProperty); }
                set { SetValue(TopmostProperty, value); }
            }
    
            private static void OnTopmostChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
            {
                (obj as PopupNonTopmost).UpdateWindow();
            }
    
            protected override void OnOpened(EventArgs e)
            {
                UpdateWindow();
            }
    
            private void UpdateWindow()
            {
                var hwnd = ((HwndSource)PresentationSource.FromVisual(this.Child)).Handle;
                RECT rect;
    
                if (GetWindowRect(hwnd, out rect))
                {
                    SetWindowPos(hwnd, Topmost ? -1 : -2, rect.Left, rect.Top, (int)this.Width, (int)this.Height, 0);
                }
            }
    
            #region P/Invoke imports & definitions
    
            [StructLayout(LayoutKind.Sequential)]
            public struct RECT
            {
                public int Left;
                public int Top;
                public int Right;
                public int Bottom;
            }
    
            [DllImport("user32.dll")]
            [return: MarshalAs(UnmanagedType.Bool)]
            private static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);
    
            [DllImport("user32", EntryPoint = "SetWindowPos")]
            private static extern int SetWindowPos(IntPtr hWnd, int hwndInsertAfter, int x, int y, int cx, int cy, int wFlags);
    
            #endregion
        }
    

      

  • 相关阅读:
    python自动华 (十二)
    python自动华 (十一)
    python自动华 (十)
    python自动华 (八)
    python自动华 (九)
    python自动华 (七)
    python自动华 (六)
    数据
    页面自适应
    判断是否移动端
  • 原文地址:https://www.cnblogs.com/xsi640/p/3531451.html
Copyright © 2011-2022 走看看