/// <summary>
        /// Called when a window gets loaded.
        /// We initialize resizers and update constraints.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnWindowLoaded(object sender, RoutedEventArgs e)
        {
            var window = (Window)((FrameworkElement)sender).TemplatedParent;

            // Update constraints.
            UpdateWindowConstraints(window);

            // Attach resizer
            WindowResizer wr = new WindowResizer(window);

            wr.addResizerRight((Rectangle)window.Template.FindName("rightSizeGrip", window));
            wr.addResizerLeft((Rectangle)window.Template.FindName("leftSizeGrip", window));
            wr.addResizerUp((Rectangle)window.Template.FindName("topSizeGrip", window));
            wr.addResizerDown((Rectangle)window.Template.FindName("bottomSizeGrip", window));
            wr.addResizerLeftUp((Rectangle)window.Template.FindName("topLeftSizeGrip", window));
            wr.addResizerRightUp((Rectangle)window.Template.FindName("topRightSizeGrip", window));
            wr.addResizerLeftDown((Rectangle)window.Template.FindName("bottomLeftSizeGrip", window));
            wr.addResizerRightDown((Rectangle)window.Template.FindName("bottomRightSizeGrip", window));
        }