/// <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; }
/// <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; } } }
/// <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; }
/// <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); } } } }
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)); }
/// <summary> /// 为DUI样式控件赋值样式 /// </summary> /// <param name="control">DUI样式控件基类对象</param> public abstract void SetControlStyle(IDUIStyleControl control);