本文整理汇总了C#中CGContext.SetRGBFillColor方法的典型用法代码示例。如果您正苦于以下问题:C# CGContext.SetRGBFillColor方法的具体用法?C# CGContext.SetRGBFillColor怎么用?C# CGContext.SetRGBFillColor使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGContext
的用法示例。
在下文中一共展示了CGContext.SetRGBFillColor方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DrawStars
protected void DrawStars(CGContext context)
{
context.SetRGBFillColor (1f, 0f, 0f, 1f);
// save state so that as we translate (move the origin around,
// it goes back to normal when we restore)
context.SetRGBFillColor (0f, 0f, 0.329f, 1.0f);
context.SaveState ();
context.TranslateCTM (30, 300);
DrawStar (context, 30);
context.RestoreState ();
context.SetRGBFillColor (1f, 0f, 0f, 1f);
context.SaveState ();
context.TranslateCTM (120, 200);
DrawStar (context, 30);
context.RestoreState ();
}
示例2: DrawInContext
public override void DrawInContext (CGContext context)
{
// Drawing with a white stroke color
context.SetRGBStrokeColor (1, 1, 1, 1);
// And drawing with a blue fill color
context.SetRGBFillColor (0, 0, 1, 1);
// Draw them with a 2 stroke width so they are a bit more visible.
context.SetLineWidth (2);
// Add Rect to the current path, then stroke it
context.AddRect (new RectangleF (30, 30, 60, 60));
context.StrokePath ();
// Stroke Rect convenience that is equivalent to above
context.StrokeRect (new RectangleF (30, 120, 60, 60));
// Stroke rect convenience equivalent to the above, plus a call to context.SetLineWidth ().
context.StrokeRectWithWidth (new RectangleF (30, 210, 60, 60), 10);
// Demonstate the stroke is on both sides of the path.
context.SaveState ();
context.SetRGBStrokeColor (1, 0, 0, 1);
context.StrokeRectWithWidth (new RectangleF (30, 210, 60, 60), 2);
context.RestoreState ();
var rects = new RectangleF []
{
new RectangleF (120, 30, 60, 60),
new RectangleF (120, 120, 60, 60),
new RectangleF (120, 210, 60, 60),
};
// Bulk call to add rects to the current path.
context.AddRects (rects);
context.StrokePath ();
// Create filled rectangles via two different paths.
// Add/Fill path
context.AddRect (new RectangleF (210, 30, 60, 60));
context.FillPath ();
// Fill convienience.
context.FillRect (new RectangleF (210, 120, 60, 60));
}
示例3: DrawInContext
public override void DrawInContext (CGContext context)
{
var imageRect = new RectangleF (8, 8, 64, 64);
// Note: The images are actually drawn upside down because Quartz image drawing expects
// the coordinate system to have the origin in the lower-left corner, but a UIView
// puts the origin in the upper-left corner. For the sake of brevity (and because
// it likely would go unnoticed for the image used) this is not addressed here.
// For the demonstration of PDF drawing however, it is addressed, as it would definately
// be noticed, and one method of addressing it is shown there.
// Draw the image in the upper left corner (0,0) with size 64x64
context.DrawImage (imageRect, image);
// Tile the same image across the bottom of the view
// CGContextDrawTiledImage() will fill the entire clipping area with the image, so to avoid
// filling the entire view, we'll clip the view to the rect below. This rect extends
// past the region of the view, but since the view's rectangle has already been applied as a clip
// to our drawing area, it will be intersected with this rect to form the final clipping area
context.ClipToRect(new RectangleF (0, 80, Bounds.Width, Bounds.Height));
// The origin of the image rect works similarly to the phase parameter for SetLineDash and
// SetPatternPhase and specifies where in the coordinate system the "first" image is drawn.
// The size (previously set to 64x64) specifies the size the image is scaled to before being tiled.
imageRect.X = 32;
imageRect.Y = 112;
context.DrawTiledImage (imageRect, image);
// Highlight the "first" image from the DrawTiledImage call.
context.SetRGBFillColor (1, 0, 0, 0.5f);
context.FillRect (imageRect);
// And stroke the clipped area
context.SetLineWidth (3);
context.SetRGBStrokeColor (1, 0, 0, 1);
context.StrokeRect (context.GetClipBoundingBox ());
}
示例4: DrawTextWithUTF8Fonts
public void DrawTextWithUTF8Fonts (CGContext mBmpContext, string text, float x, float y, string font_family, double text_size)
{
/*
The problem is that CoreGraphics APIs for CGContext do not support rendering UTF8 code, and then ShowTextAtPoint() is limited to the text encoding in MacRoman.
The fix is to use the UIKit function DrawString() instead.
*/
UIGraphics.PushContext (mBmpContext);
mBmpContext.SetRGBFillColor(1f,1f,1f,1f);
UIFont tfont = UIFont.FromName (font_family,(float)text_size);
NSString nsstr = new NSString(text);
SizeF sz = nsstr.StringSize(tfont);
RectangleF rect = new RectangleF(x,y,sz.Width,sz.Height);
nsstr.DrawString( rect, tfont);
UIGraphics.PopContext ();
}
示例5: DrawLayer
public override void DrawLayer (CALayer layer, CGContext context)
{
context.SaveState ();
context.SetRGBFillColor (1.0f, 1.0f, 1.0f, 1.0f);
context.FillRect (context.GetClipBoundingBox ());
context.TranslateCTM (0.0f, layer.Bounds.Size.Height);
context.ScaleCTM (1.0f, -1.0f);
context.ConcatCTM (ParentController.PdfPage.GetDrawingTransform (CGPDFBox.Crop, layer.Bounds, 0, true));
context.DrawPDFPage (ParentController.PdfPage);
context.RestoreState ();
}
示例6: DrawStarPattern
// This is a slightly more complicated draw pattern, but using it is just
// as easy as the previous one. To use this one, simply change "DrawPolkaDotPattern"
// in line 54 above to "DrawStarPattern"
protected void DrawStarPattern (CGContext context)
{
// declare vars
float starDiameter = 16;
// 144º
float theta = 2 * (float)Math.PI * (2f / 5f);
float radius = starDiameter / 2;
// move up and over
context.TranslateCTM (starDiameter / 2, starDiameter / 2);
context.MoveTo (0, radius);
for (int i = 1; i < 5; i++) {
context.AddLineToPoint (radius * (float)Math.Sin (i * theta), radius * (float)Math.Cos (i * theta));
}
// fill our star as dark gray
context.SetRGBFillColor (.3f, .3f, .3f, 1);
context.ClosePath ();
context.FillPath ();
}
示例7: DrawPolkaDotPattern
// This is our pattern callback. it's called by coregraphics to create
// the pattern base.
protected void DrawPolkaDotPattern (CGContext context)
{
context.SetRGBFillColor (.3f, .3f, .3f, 1);
context.FillEllipseInRect (new RectangleF (4, 4, 8, 8));
}
示例8: DrawColored
static void DrawColored(CGContext context)
{
// Dark Blue
context.SetRGBFillColor(29 / 255f, 156 / 255f, 215 / 255f, 10);
context.FillRect(new RectangleF(0, 0, 8, 8));
context.FillRect(new RectangleF(8, 8, 8, 8));
// Light Blue
context.SetRGBFillColor(204 / 255f, 224 / 255f, 244 / 255f, 10);
context.FillRect(new RectangleF(8, 0, 8, 8));
context.FillRect(new RectangleF(0, 8, 8, 8));
}
示例9: DrawFlag
protected void DrawFlag (CGContext context)
{
// declare vars
int i, j;
// general sizes
float flagWidth = Frame.Width * .8f;
float flagHeight = (float)(flagWidth / 1.9);
PointF flagOrigin = new PointF (Frame.Width * .1f, Frame.Height / 3);
// stripe
float stripeHeight = flagHeight / 13;
float stripeSpacing = stripeHeight * 2;
RectangleF stripeRect = new RectangleF (0, 0, flagWidth, stripeHeight);
// star field
float starFieldHeight = 7 * stripeHeight;
float starFieldWidth = flagWidth * (2f / 5f);
RectangleF starField = new RectangleF (flagOrigin.X, flagOrigin.Y + (6 * stripeHeight), starFieldWidth, starFieldHeight);
// stars
float starDiameter = flagHeight * 0.0616f;
float starHorizontalCenterSpacing = (starFieldWidth / 6);
float starHorizontalPadding = (starHorizontalCenterSpacing / 4);
float starVerticalCenterSpacing = (starFieldHeight / 5);
float starVerticalPadding = (starVerticalCenterSpacing / 4);
PointF firstStarOrigin = new PointF (flagOrigin.X + starHorizontalPadding, flagOrigin.Y + flagHeight - starVerticalPadding - (starVerticalCenterSpacing / 2));
PointF secondRowFirstStarOrigin = new PointF (firstStarOrigin.X + (starHorizontalCenterSpacing / 2), firstStarOrigin.Y - (starVerticalCenterSpacing / 2));
// white background + shadow
context.SaveState ();
// note: when drawing on-screen,the coord space for shadows doesn't get modified
context.SetShadow (new SizeF (15, 15), 7);
context.SetRGBFillColor (1, 1, 1, 1);
context.FillRect (new RectangleF (flagOrigin.X, flagOrigin.Y, flagWidth, flagHeight));
context.RestoreState ();
// create a stripe layer
using (CGLayer stripeLayer = CGLayer.Create (context, stripeRect.Size)) {
// set red as the fill color
// this works
stripeLayer.Context.SetRGBFillColor (1f, 0f, 0f, 1f);
// but this doesn't ????
//stripeLayer.Context.SetFillColor (new float[] { 1f, 0f, 0f, 1f });
// fill the stripe
stripeLayer.Context.FillRect (stripeRect);
// loop through the stripes and draw the layer
context.SaveState ();
for (i = 0; i < 7; i++) {
Console.WriteLine ("drawing stripe layer");
// draw the layer
context.DrawLayer (stripeLayer, flagOrigin);
// move the origin
context.TranslateCTM (0, stripeSpacing);
}
context.RestoreState ();
}
// draw the star field
//BUGBUG: apple bug - this only works on on-screen CGContext and CGLayer
//context.SetFillColor (new float[] { 0f, 0f, 0.329f, 1.0f });
context.SetRGBFillColor (0f, 0f, 0.329f, 1.0f);
context.FillRect (starField);
// create the star layer
using (CGLayer starLayer = CGLayer.Create (context, starField.Size)) {
// draw the stars
DrawStar (starLayer.Context, starDiameter);
// 6-star rows
// save state so that as we translate (move the origin around,
// it goes back to normal when we restore)
context.SaveState ();
context.TranslateCTM (firstStarOrigin.X, firstStarOrigin.Y);
// loop through each row
for (j = 0; j < 5; j++) {
// each star in the row
for (i = 0; i < 6; i++) {
// draw the star, then move the origin to the right
context.DrawLayer (starLayer, new PointF (0f, 0f));
context.TranslateCTM (starHorizontalCenterSpacing, 0f);
}
// move the row down, and then back left
context.TranslateCTM ((-i * starHorizontalCenterSpacing), -starVerticalCenterSpacing);
}
context.RestoreState ();
// 5-star rows
context.SaveState ();
context.TranslateCTM (secondRowFirstStarOrigin.X, secondRowFirstStarOrigin.Y);
// loop through each row
for (j = 0; j < 4; j++) {
// each star in the row
for (i = 0; i < 5; i++) {
//.........这里部分代码省略.........