Ejemplo n.º 1
0
        /// <summary>
        /// 为DUI样式控件赋值样式
        /// </summary>
        /// <param name="control">DUI样式控件基类对象</param>
        public override void SetControlStyle(IDUIStyleControl control)
        {
            DUIStyleButton button = control as DUIStyleButton;
            if (button == null)
            {
                return;
            }

            //获得皮肤全局字体对象
            DUIFont buttonFont = DUISkinManager.GetCurrentSkinManager().GetFont(_fontName);
            if (buttonFont != null)
            {
                if (buttonFont.Font != null)
                {
                    button.Font = buttonFont.Font;
                }
                if (buttonFont.BackColor != Color.Empty)
                {
                    button.BackColor = buttonFont.BackColor;
                }
                if (buttonFont.ForeColor != Color.Empty)
                {
                    button.ForeColor = buttonFont.ForeColor;
                }
            }
            button.FlatStyle = _flatStyle;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 为DUI样式控件赋值样式
        /// </summary>
        /// <param name="control">DUI样式控件基类对象</param>
        public override void SetControlStyle(IDUIStyleControl control)
        {
            DUIStyleLabel label = control as DUIStyleLabel;

            if (label == null)
            {
                return;
            }

            DUIFont labelFont = DUISkinManager.GetCurrentSkinManager().GetFont(_fontName);

            if (labelFont != null)
            {
                if (labelFont.Font != null)
                {
                    label.Font = labelFont.Font;
                }
                if (labelFont.BackColor != Color.Empty)
                {
                    label.BackColor = labelFont.BackColor;
                }
                if (labelFont.ForeColor != Color.Empty)
                {
                    label.ForeColor = labelFont.ForeColor;
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 为DUI样式控件赋值样式
        /// </summary>
        /// <param name="control">DUI样式控件基类对象</param>
        public override void SetControlStyle(IDUIStyleControl control)
        {
            DUIStyleTextBox textBox = control as DUIStyleTextBox;

            if (textBox == null)
            {
                return;
            }

            //获得皮肤全局字体对象
            DUIFont textboxFont = DUISkinManager.GetCurrentSkinManager().GetFont(_fontName);

            if (textboxFont != null)
            {
                if (textboxFont.Font != null)
                {
                    textBox.Font = textboxFont.Font;
                }
                if (textboxFont.BackColor != Color.Empty)
                {
                    textBox.BackColor = textboxFont.BackColor;
                }
                if (textboxFont.ForeColor != Color.Empty)
                {
                    textBox.ForeColor = textboxFont.ForeColor;
                }
            }
            textBox.BorderStyle = _borderStyle;
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 递归处理IDUIStyleControl的样式
        /// </summary>
        /// <param name="control">Control类型的对象</param>
        public static void ProcessControlDUIStyle(Control control)
        {
            Stack <Control> controlStack = new Stack <Control>();

            controlStack.Push(control);

            while (controlStack.Count > 0)
            {
                Control          currentControl  = controlStack.Pop();
                IDUIStyleControl duiStyleControl = currentControl as IDUIStyleControl;
                if (duiStyleControl != null)
                {
                    duiStyleControl.ProcessDUIStyle();
                }

                foreach (Control childControl in currentControl.Controls)
                {
                    DUIForm controlTest = childControl as DUIForm;
                    if (controlTest == null)    //子控件是DUIForm类型的,不做递归样式处理,因为这种类型的内嵌窗口会自己处理样式
                    {
                        controlStack.Push(childControl);
                    }
                }
            }
        }
Ejemplo n.º 5
0
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            IWindowsFormsEditorService editorService = null;

            if (context != null && context.Instance != null && provider != null)
            {
                editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
                if (editorService != null)
                {
                    //多选情况
                    if (context.Instance.GetType() == typeof(object[]))
                    {
                        Type     paramType      = typeof(object);
                        string   paramStyleName = null;
                        object[] controlList    = (object[])context.Instance; //多选的控件列表

                        for (int i = 0; i < controlList.Length; i++)          //遍历所有多选的控件
                        {
                            IDUIStyleControl control = controlList[i] as IDUIStyleControl;
                            if (i == 0)
                            {
                                //记录第一个控件的类型和StyleName参数值
                                paramType      = control.GetType();
                                paramStyleName = control.DUIStyleName;
                            }
                            else
                            {
                                //若后续控件的StyleName与第一个不一样,则清空参数paramStyleName
                                if (!paramStyleName.Equals(control.DUIStyleName))
                                {
                                    paramStyleName = string.Empty;
                                }
                                //若后续控件的类型与第一个不一样,则改变参数paramType为object类型,使后续样式选择下拉框不显示任何样式
                                if (paramType != control.GetType())
                                {
                                    paramType = typeof(object);
                                }
                            }
                        }

                        //使用构造后的paramType和paramStyleName作为参数构造属性选择下拉框
                        StyleNameSelectDropDownList editingDropDown
                            = new StyleNameSelectDropDownList(editorService, paramType, paramStyleName);
                        editorService.DropDownControl(editingDropDown);

                        //当返回值部位空时,将返回值返回设计器;否则返回原值到设计器(撤销属性设置的情况)
                        if (!string.IsNullOrEmpty(editingDropDown.NewStyleName))
                        {
                            return(editingDropDown.NewStyleName);
                        }
                        else
                        {
                            return(value);   //存储了修改前的控件属性原值
                        }
                    }
                    //单选情况
                    else
                    {
                        IDUIStyleControl            originalControl = (IDUIStyleControl)context.Instance;
                        StyleNameSelectDropDownList editingDropDown
                            = new StyleNameSelectDropDownList(editorService, originalControl.GetType(), originalControl.DUIStyleName);
                        editorService.DropDownControl(editingDropDown);

                        return(editingDropDown.NewStyleName);
                    }
                }
            }
            return(base.EditValue(context, provider, value));
        }
Ejemplo n.º 6
0
 /// <summary>
 /// 为DUI样式控件赋值样式
 /// </summary>
 /// <param name="control">DUI样式控件基类对象</param>
 public abstract void SetControlStyle(IDUIStyleControl control);