如何为一个类型为Color的属性设置默认值

最近在研究GDI+的时候,用winform来写自定义控件遇到需要为控件的属性设置默认值,但这个属性的类型是System.Drawing.Color。本文只是总结一下各种设置的方法。

Example

[Description("设置颜色")]
[DefaultValue(typeof(Color), "0, 0, 0")]
public Color BaseColor { get; set; }

设置方法

  • 用系统已定义的知名颜色(如:Color.Red)
    [DefaultValue(typeof(Color), "Red")] 
  • 使用16进制颜色值

    [DefaultValue(typeof(Color), "0xFFFFC0")] 
  • 使用RGB颜色参数
    [DefaultValue(typeof(Color),"248, 232, 192")]

    注意:此方法在某些情况下可能默认颜色值会失败,具体可参看:How to set the default value of Colors in a custom control in Winforms?

References

转载于:https://www.cnblogs.com/EasonWu/p/set-default-color-for-the-property-of-winform-control.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是设计的Fan类的实现: ```java import javafx.scene.layout.Pane; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; public class Fan extends Pane { // constants for fan speeds public static final int SLOW = 1; public static final int MEDIUM = 2; public static final int FAST = 3; // properties private int speed; private boolean on; private double radius; private Color color; // constructors public Fan() { this(SLOW, false, 100, Color.BLUE); } public Fan(int speed, boolean on, double radius, Color color) { this.speed = speed; this.on = on; this.radius = radius; this.color = color; draw(); } // accessors public int getSpeed() { return speed; } public void setSpeed(int speed) { this.speed = speed; draw(); } public boolean isOn() { return on; } public void setOn(boolean on) { this.on = on; draw(); } public double getRadius() { return radius; } public void setRadius(double radius) { this.radius = radius; draw(); } public Color getColor() { return color; } public void setColor(Color color) { this.color = color; draw(); } // override toString() method @Override public String toString() { return "Fan [speed=" + speed + ", on=" + on + ", radius=" + radius + ", color=" + color + "]"; } // override equals() method @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof Fan)) { return false; } Fan other = (Fan) obj; return other.speed == this.speed && other.on == this.on && other.radius == this.radius && other.color.equals(this.color); } // helper method to draw fan private void draw() { getChildren().clear(); if (on) { for (int i = 0; i < 4; i++) { Rectangle blade = new Rectangle(0, 0, 20, radius / 2); blade.setTranslateX(getWidth() / 2 - blade.getWidth() / 2); blade.setTranslateY(radius / 2); blade.setFill(color); blade.setRotate(i * 90); getChildren().add(blade); } } } } ``` 在此实现中,我们定义了常量SLOW、MEDIUM和FAST,以代表风扇的速度。然后我们定义了speed、on、radius和color四个属性,分别代表速度、开关机、扇叶大小和扇叶颜色。我们还定义了两个构造函数,一个是默认构造函数,另一个允许我们设置初始值。 我们还覆盖了Object类的toString()和equals()方法,以便于在需要时打印对象或比较对象。 最后,我们使用继承自Pane类的draw()方法来绘制风扇。如果开关机是打开状态,我们将添加四个矩形作为扇叶,并根据速度设置它们的旋转速度。如果开关机是关闭状态,我们不会添加任何扇叶。 希望这可以帮助您实现Fan类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值