private SizeChangedEventHandler SetupAndOpenDialog(
            IMetroWindow metroWindow
            , IBaseMetroDialogFrame dialog)
        {
            dialog.SetZIndex((int)metroWindow.OverlayBox.GetValue(Panel.ZIndexProperty) + 1);

            dialog.MinHeight = metroWindow.ActualHeight / 4.0;
            dialog.MaxHeight = metroWindow.ActualHeight;

            SizeChangedEventHandler sizeHandler = (sender, args) =>
            {
                dialog.MinHeight = metroWindow.ActualHeight / 4.0;
                dialog.MaxHeight = metroWindow.ActualHeight;
            };

            metroWindow.SizeChanged += sizeHandler;

            this.AddDialog(metroWindow, dialog);

            dialog.OnShown();

            return(sizeHandler);
        }