예제 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="OverlayWindow"/> class.
        /// </summary>
        /// <param name="options">The options.</param>
        public OverlayWindow(OverlayCreationOptions options)
        {
            WindowTitle   = options.WindowTitle;
            BypassTopmost = options.BypassTopmost;

            _windowThread = new Thread(() => WindowThreadProcedure(options.X, options.Y, options.Width, options.Height))
            {
                IsBackground = true,
                Priority     = ThreadPriority.BelowNormal
            };
            _windowThread.Start();
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="StickyOverlayWindow"/> class.
        /// </summary>
        /// <param name="parentWindowHandle">The parent window handle.</param>
        /// <param name="options">The options.</param>
        public StickyOverlayWindow(IntPtr parentWindowHandle, OverlayCreationOptions options) : base(options)
        {
            if (parentWindowHandle == IntPtr.Zero)
            {
                throw new ArgumentNullException(nameof(parentWindowHandle));
            }

            while (!base.IsInitialized)
            {
                Thread.Sleep(10);
            }

            ParentWindowHandle = parentWindowHandle;
            Install();
        }