示例#1
0
        internal static void CopyCommonPropertiesFrom(this Wix.Control destControl, IWixControl srcControl)
        {
            var formControl = (System.Windows.Forms.Control)srcControl;

            if (srcControl.Conditions != null)
                destControl.Conditions.AddRange(srcControl.Conditions);

            destControl.Height = formControl.Size.Height.WScale();
            destControl.Width = formControl.Size.Width.WScale();
            destControl.X = formControl.Left.WScale();
            destControl.Y = formControl.Top.WScale();

            destControl.Disabled = !formControl.Enabled;
            destControl.Hidden = srcControl.Hidden;
            destControl.AttributesDefinition = srcControl.WixAttributes;
            destControl.Property = srcControl.BoundProperty;

            if (srcControl is WixControl)
                destControl.EmbeddedXML = (srcControl as WixControl).EmbeddedXML;

            if (!formControl.Text.IsEmpty())
                destControl.Text = formControl.Text;

            if (!srcControl.Tooltip.IsEmpty())
                destControl.Tooltip = srcControl.Tooltip;

            destControl.Name = formControl.Name.IsNullOrEmpty() ? destControl.Type : formControl.Name;
            if (!srcControl.Id.IsNullOrEmpty())
                destControl.Id = srcControl.Id; //destControl.Id is a calculated property and if not set explicitly it will fell back to the destControl.Name

            if (srcControl is IWixInteractiveControl)
            {
                destControl.Actions.AddRange((srcControl as IWixInteractiveControl).Actions);
            }
        }
示例#2
0
        /// <summary>
        /// Converts <see cref="IWixControl"/> into an instance of <see cref="WixSharp.Controls.Control"/>.
        /// </summary>
        /// <param name="srcControl">The source control.</param>
        /// <param name="controlType">Type of the control.</param>
        /// <returns></returns>
        public static WixSharp.Controls.Control ConvertToWControl(this IWixControl srcControl, ControlType controlType)
        {
            var wControl = new WixSharp.Controls.Control {
                Type = controlType.ToString()
            };

            wControl.CopyCommonPropertiesFrom(srcControl);

            return(wControl);
        }
示例#3
0
        /// <summary>
        /// Copies the common properties from one <see cref="IWixControl"/> to another.
        /// </summary>
        /// <param name="destControl">The dest control.</param>
        /// <param name="srcControl">The source control.</param>
        public static void CopyCommonPropertiesFrom(this WixSharp.Controls.Control destControl, IWixControl srcControl)
        {
            var formControl = (System.Windows.Forms.Control)srcControl;

            if (srcControl.Conditions != null)
            {
                destControl.Conditions.AddRange(srcControl.Conditions);
            }

            destControl.Height = formControl.Size.Height.WScale();
            destControl.Width  = formControl.Size.Width.WScale();
            destControl.X      = formControl.Left.WScale();
            destControl.Y      = formControl.Top.WScale();

            destControl.Disabled             = !formControl.Enabled;
            destControl.Hidden               = srcControl.Hidden;
            destControl.AttributesDefinition = srcControl.WixAttributes;
            destControl.Property             = srcControl.BoundProperty;

            if (srcControl is WixControl)
            {
                destControl.EmbeddedXML = (srcControl as WixControl).EmbeddedXML;
            }

            if (!formControl.Text.IsEmpty())
            {
                destControl.Text = formControl.Text;
            }

            if (!srcControl.Tooltip.IsEmpty())
            {
                destControl.Tooltip = srcControl.Tooltip;
            }

            destControl.Name = formControl.Name.IsNullOrEmpty() ? destControl.Type : formControl.Name;
            if (!srcControl.Id.IsNullOrEmpty())
            {
                destControl.Id = srcControl.Id; //destControl.Id is a calculated property and if not set explicitly it will fell back to the destControl.Name
            }
            if (srcControl is IWixInteractiveControl)
            {
                destControl.Actions.AddRange((srcControl as IWixInteractiveControl).Actions);
            }
        }