private void UpdateBounds()
        {
            if (_window.WindowState != WindowState.Normal)
            {
                return;
            }

            var resizeBorder = ExtendedResizeBorder.GetExtendedResizeBorder(_window);

            if (resizeBorder == null)
            {
                return;
            }

            var bounds = new Rect(_window.Left, _window.Top, _window.ActualWidth, _window.ActualHeight);

            _borders.ForEach(x => x.Render(bounds, resizeBorder));
        }
        public ExtendedResizeController(Window window)
        {
            _window = window;

            var shadowBorder = ExtendedResizeBorder.GetExtendedResizeBorder(_window);

            if (shadowBorder == null)
            {
                return;
            }

            var left   = new ExtendedResizeWindow(Direction.Left);
            var top    = new ExtendedResizeWindow(Direction.Top);
            var right  = new ExtendedResizeWindow(Direction.Right);
            var bottom = new ExtendedResizeWindow(Direction.Bottom);

            _borders = new List <ExtendedResizeWindow> {
                left, top, right, bottom,
            };

            _windowInitStub = window.OnInitialized(Initialize);
        }