File: System.Activities.Presentation\System\Activities\Presentation\WorkflowElementDialogWindow.xaml.cs
Project: ndp\cdf\src\NetFx40\Tools\System.Activities.Presentation.csproj (System.Activities.Presentation)
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//----------------------------------------------------------------
 
namespace System.Activities.Presentation
{
    using System.Runtime;
    using System.Windows;
    using System.Diagnostics.CodeAnalysis;
    using System.Runtime.InteropServices;
    using System.Activities.Presentation.View;
    using System.Windows.Interop;
    using System.Windows.Input;
    using System.ComponentModel;
 
    [Fx.Tag.XamlVisible(false)]
    internal partial class WorkflowElementDialogWindow
    {
        WorkflowElementDialog payload;
        bool okCancel;
 
        //default MinButton and MaxButton to true
        private bool enableMinButton = true;
        private bool enableMaxButton = true;
 
        private Func<bool> onOk;
 
        public WorkflowElementDialogWindow(WorkflowElementDialog payload, bool okCancel, bool enableMinButton, bool enableMaxButton, Func<bool> onOk)
        {
            this.payload = payload;
            this.okCancel = okCancel;
            this.enableMinButton = enableMinButton;
            this.enableMaxButton = enableMaxButton;
            this.onOk = onOk;
            InitializeComponent();
        }
 
        protected override void OnInitialized(EventArgs e)
        {
            base.OnInitialized(e);
            this.payload.Window = this;
            this.payloadHolder.Child = this.payload;
 
            this.MinWidth = this.payload.MinWidth;
            this.MinHeight = this.payload.MinHeight;
            this.MaxWidth = this.payload.MaxWidth;
            this.MaxHeight = this.payload.MaxHeight;
            this.ResizeMode = this.payload.WindowResizeMode;
            this.SizeToContent = this.payload.WindowSizeToContent;
 
            this.Context = payload.Context;
            if (payload.HelpKeyword != null)
            {
                this.HelpKeyword = payload.HelpKeyword;
            }
 
            if (0.0 != this.payload.MinWidth)
            {
                this.Width = this.payload.MinWidth;
            }
            if (0.0 != this.payload.MinHeight)
            {
                this.Height = this.payload.MinHeight;
            }
 
            this.payload.MinWidth = this.payload.MinHeight = 0.0;
            this.payload.MaxWidth = this.payload.MaxWidth = double.PositiveInfinity;
 
            if (!this.okCancel)
            {
                this.buttonPanel.Children.Remove(this.cancelButton);
            }
 
            if (!LocalAppContextSwitches.UseLegacyAccessibilityFeatures)
            {
                this.payload.TabIndex = 0;
            }
        }
 
        void OK_Click(object sender, RoutedEventArgs e)
        {
            if (this.onOk == null || this.onOk())
            {
                this.DialogResult = true;
            }
        }
 
        [SuppressMessage(FxCop.Category.Performance, FxCop.Rule.AvoidUncalledPrivateCode,
            Justification = "This function is called in the xaml file")]
        void OnWindowClosed(object sender, EventArgs e)
        {
            this.payload.Window = null;
            this.payloadHolder.Child = null;
        }
    }
}