Exemple #1
0
        private System.Windows.Window CreateWindow(FrameworkElement view, System.Windows.Window owner,
            IDialogRegister dialog = null)
        {
            var window = new MetroWindow()
            {
                Content = view,
                ResizeMode =
                    dialog == null
                        ? ResizeMode.NoResize
                        : dialog.AllowResize ? ResizeMode.CanResize : ResizeMode.NoResize,
                Topmost = !Debugger.IsAttached,
                ShowInTaskbar = false,
                WindowStartupLocation = WindowStartupLocation.CenterOwner
            };

            window.SetResourceReference(FrameworkElement.StyleProperty, "Window");

            if (owner != null && owner.IsVisible)
                window.Owner = owner;

            if (dialog != null && dialog.Size.HasValue)
            {
                window.Width = dialog.Size.Value.Width;
                window.Height = dialog.Size.Value.Height;
            }
            else if (double.IsNaN(view.Width) && double.IsNaN(view.Height))
            {
                window.SizeToContent = SizeToContent.WidthAndHeight;
                var behaviors = Interaction.GetBehaviors(window);
                if (behaviors != null)
                    behaviors.Add(new WindowChromeSizeToContentBehavior());
            }
            else if (double.IsNaN(view.Width))
            {
                window.SizeToContent = SizeToContent.Width;
                window.Height = view.Height + SystemParameters.WindowCaptionHeight +
                                 SystemParameters.ResizeFrameHorizontalBorderHeight;
            }
            else if (double.IsNaN(view.Height))
            {
                window.SizeToContent = SizeToContent.Height;
                window.Width = view.Width +
                                 SystemParameters.ResizeFrameHorizontalBorderHeight;
            }
            else
            {
                window.SizeToContent = SizeToContent.Manual;
                window.Width = view.Width +
                                 SystemParameters.ResizeFrameHorizontalBorderHeight;
                window.Height = view.Height + SystemParameters.WindowCaptionHeight +
                                 SystemParameters.ResizeFrameHorizontalBorderHeight;

            }
            return window;
        }