0

WPF ウィンドウ/コントロールがユーザーに表示されているかどうか (他のウィンドウによって隠されている場合) を知りたいのですが、この関数 GetUpdateRect() を見つけましたが、Windows フォームでのみ機能します。

WPF コントロール/Windows で関数 GetUpdateRect() を使用する方法はありますか? 私はすべてを試しましたが、私が見つけたのはこれだけです:

[System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential)]
internal struct RECT
{
    public int Left;
    public int Top;
    public int Right;
    public int Bottom;
    public int Width { get { return this.Right - this.Left; } }
    public int Height { get { return this.Bottom - this.Top; } }
}

[System.Runtime.InteropServices.DllImport("user32.dll")]
internal static extern bool GetUpdateRect(IntPtr hWnd, ref RECT rect, bool bErase);

public static bool IsControlVisibleToUser(System.Windows.Forms.Control control)
{
    control.Invalidate();
    Rectangle bounds = control.Bounds;
    RECT rect = new RECT { Left = bounds.Left, Right = bounds.Right, Top = bounds.Top, Bottom = bounds.Bottom };
    return GetUpdateRect(control.Handle, ref rect, false);
}
4

0 に答える 0