![](/img/trans.png)
[英]Easy way to create defaultconstructor if there are many properties in a class?
[英]Easy way to enumerate class properties and then specify that property
我有一个Windows窗体,我希望用户指定画笔system.drawing.brush的颜色,然后由我的应用程序本机使用。 画笔颜色很多,我想知道是否有可能列举所有可能的颜色组合?
然后,我可以用它们填充组合框。 然后,第二部分将是通过编程方式指定画笔属性,而不必执行查找表。
最好的选择是像public enum BrushColor{...}
一样声明枚举数,在其中列出所有颜色。 然后,使用此枚举器,您可以自动填充组合框,然后根据用户输入( switch
块)确定颜色也很容易。
您可以使用反射获得颜色列表:
Type brushes = typeof(Brushes);
var colorList = from color in brushes.GetProperties() select color.Name;
将这段代码与开头提到的逻辑结合起来,可以实现所需的结果。
有关颜色名称的列表,可以使用Reflection :
Type colorType = typeof(System.Drawing.Color);
PropertyInfo[] propInfoList = colorType.GetProperties(BindingFlags.Static | BindingFlags.DeclaredOnly | BindingFlags.Public);
var colorNames = propInfoList.Select(c => c.Name);
使用该列表填充您的组合框
然后,一旦用户选择了颜色,就可以使用以下方法创建画笔:
var brushColor = Color.FromName(selectedColorFromCombo);
var brush = new SolidBrush(brushColor);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.