解決wpf popup控制項遮擋其他程式的問題

來源:互聯網
上載者:User

標籤:

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}
View Code

 

解決wpf popup控制項遮擋其他程式的問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.