我正在尝试在 monotouch 上创建一个带有 CoreGraphics 的按钮。我不知道如何在按下按钮时更改按钮颜色。我尝试覆盖TouchesBegan
andTouchesEnded
方法,但我不知道如何更改颜色。
问问题
510 次
1 回答
5
您可以通过两种方式处理背景颜色。您可以简单地设置 BackgroundColor 属性。这应该会自动更改颜色。或者,如果您将颜色存储为用于 FillRect 的私有变量,则需要调用 SetNeedsDisplay 来强制调用 Draw。
public override void TouchesBegan (MonoTouch.Foundation.NSSet touches, UIEvent evt)
{
base.TouchesBegan (touches, evt);
this.BackgroundColor = UIColor.Green;
backColor2 = UIColor.Yellow;
this.SetNeedsDisplay ();
}
public override void TouchesEnded (MonoTouch.Foundation.NSSet touches, UIEvent evt)
{
base.TouchesEnded (touches, evt);
this.BackgroundColor = UIColor.Red;
backColor2 = UIColor.Blue;
this.SetNeedsDisplay ();
}
public override void Draw (RectangleF rect)
{
base.Draw (rect);
using (CGContext context = UIGraphics.GetCurrentContext ()) {
RectangleF rect2 = this.Bounds;
rect2.X += 10;
rect2.Y += 5;
rect2.Width -= 20;
rect2.Height -= 10;
backColor2.SetFill ();
context.FillRect (rect2);
}
}
于 2012-05-08T02:41:36.387 回答