static nfloat LuminanceForColor(UIColor color) { CGColor cgcolor = color.CGColor; var components = cgcolor.Components; nfloat luminance = 0; switch (cgcolor.ColorSpace.Model) { case CGColorSpaceModel.Monochrome: // For grayscale colors, the luminance is the color value luminance = components[0]; break; case CGColorSpaceModel.RGB: // For RGB colors, we calculate luminance assuming sRGB Primaries as per // http://en.wikipedia.org/wiki/Luminance_(relative) luminance = 0.2126f * components[0] + 0.7152f * components[1] + 0.0722f * components[2]; break; default: // We don't implement support for non-gray, non-rgb colors at this time. // Since our only consumer is colorSortByLuminance, we return a larger than normal // value to ensure that these types of colors are sorted to the end of the list. luminance = 2.0f; break; } return(luminance); }
void UpdateColors() { CGColor[] gradientColors; if (_Gradient != null && !Outline) { gradientColors = new CGColor[] { _Gradient.Start.ToUIColor().CGColor, _Gradient.End.ToUIColor().CGColor }; } else { gradientColors = new CGColor[] { UIColor.Clear.CGColor, UIColor.Clear.CGColor }; } CATransaction.Begin(); CATransaction.DisableActions = true; if (Outline) { Layer.BorderWidth = 1; Layer.BorderColor = OutlineColor.CGColor; if (Label != null) { Label.TextColor = OutlineColor; } } else { Layer.BorderWidth = 0; Layer.BorderColor = UIColor.Clear.CGColor; if (Label != null) { Label.TextColor = UIColor.White; } } GradientLayer.Colors = gradientColors; CATransaction.Commit(); }
public static CGColor GetPixelColour(this UIImage image, CGPoint point) { var rawData = new byte[4]; var handle = GCHandle.Alloc(rawData); CGColor resultColor = null; try { using (var colorSpace = CGColorSpace.CreateDeviceRGB()) { using (var context = new CGBitmapContext(rawData, 1, 1, 8, 4, colorSpace, CGImageAlphaInfo.PremultipliedLast)) { context.DrawImage(new CGRect(-point.X, point.Y - image.Size.Height, image.Size.Width, image.Size.Height), image.CGImage); float red = (rawData[0]) / 255.0f; float green = (rawData[1]) / 255.0f; float blue = (rawData[2]) / 255.0f; float alpha = (rawData[3]) / 255.0f; resultColor = new CGColor(red, green, blue, alpha); } } } finally { handle.Free(); } return(resultColor); }
public override void Draw(RectangleF area) { if (this.data == null || this.data.Count() == 0) { base.Draw (area); return; } var color = LineColor.CGColor; if (color == null) color = new CGColor (255, 255, 255); CGContext context = UIGraphics.GetCurrentContext(); context.BeginPath(); context.SetStrokeColor (color); var d = this.data; float mx = this.max; float yscale = Bounds.Height / (mx - this.min); float xscale = Bounds.Width/60; context.MoveTo (0, (mx - d[0].Value) * yscale); for (int i = 0; i < d.Count(); i++) { var telemetry = d[i]; var x = ((float)(telemetry.Timestamp - DateTime.UtcNow).TotalSeconds * xscale) + Bounds.Width; var y = (mx - telemetry.Value) * yscale; //Console.WriteLine("X:{0} , Y:{1}",x,y); context.AddLineToPoint (x,y ); } context.DrawPath (CGPathDrawingMode.Stroke); }
public void ColorSpace() { using (var c = new CGColor(0.5f, 0.5f, 0.5f, 0.5f)) { using (var spc = c.ColorSpace) Assert.IsNotNull(spc, "ColorSpace"); } }
public ProgressButtonLayer(int drawProgress) : base() { _drawProgress = drawProgress; StateChanged(); _state = ProgressButtonState.Active; _buttonColor = ProgressButtonColors.ButtonColor.AsCgColor(); }
protected override bool Validating() { if (_defaultColor == null) { var firstRelationship = _sourceBindingRelationships.FirstOrDefault(); if (firstRelationship.Value != null) { var firstView = firstRelationship.Value.FirstOrDefault(); if (firstView != null) { _defaultColor = firstView.Layer.BorderColor; _defaultWidth = firstView.Layer.BorderWidth; } } } if (_sourceBindingRelationships == null) { return(false); } foreach (var textView in _sourceBindingRelationships.SelectMany(sourceBindingRelationship => sourceBindingRelationship.Value)) { textView.Layer.BorderColor = _defaultColor; textView.Layer.BorderWidth = _defaultWidth.GetValueOrDefault(); } return(true); }
static CTLine GetLabel(string label, CGColor foregroundColor, out CGSize bounds) { // I seriously have no idea what this is other than 8388608/1024/1024=8 -abock const int undocumentedKennethConstantOnlyHeUnderstands = 8388608; var typesetter = new CTTypesetter( new NSAttributedString( label, new CTStringAttributes { Font = new CTFont(LabelFontBold.FontName, LabelFontBold.PointSize), ForegroundColor = foregroundColor }.Dictionary ) ); var lineRange = new NSRange(0, typesetter.SuggestLineBreak(0, undocumentedKennethConstantOnlyHeUnderstands)); var line = typesetter.GetLine(lineRange); nfloat ascent; nfloat descent; nfloat leading; var lineWidth = line.GetTypographicBounds(out ascent, out descent, out leading); bounds = new CGSize( // +1 matches best to CTFramesetter's behavior (nfloat)Math.Ceiling(ascent + descent + leading + 1), (nfloat)lineWidth ); return(line); }
internal void StateChanged(ProgressButtonState state, string customtext, CGColor animationColor, bool reDrawOptimized = true) { if (StateUpdated != null) { StateUpdated(); } if (State != state) { _colorAnimationRing.RemoveAllAnimations(); } _progressButtonLayer.CurText = customtext; _progressButtonLayer.State = state; if (state == ProgressButtonState.Cleaned) { _colorAnimationRing.AddAnimation(DrawAnimationWithColor(ProgressButtonColors.CleanedStateProgress.AsResourceCgColor()), PARAMs.Animation); } else if (animationColor != null && state != ProgressButtonState.Disabled && (state != State || !reDrawOptimized)) { _colorAnimationRing.AddAnimation(DrawAnimationWithColor(animationColor), PARAMs.Animation); } if (state == ProgressButtonState.Active && _animationColor != animationColor) { _colorAnimationRing.RemoveAllAnimations(); _colorAnimationRing.AddAnimation(DrawAnimationWithColor(animationColor), PARAMs.Animation); } _state = state; _animationColor = animationColor; }
private UIView AddShadowToView(UIView view, bool left) { // create a view with the same frame var viewWithShadow = new UIView(view.Frame); // create a shadow var shadowView = new UIView(viewWithShadow.Bounds); var colors = new CGColor[] { UIColor.FromWhiteAlpha(0f, 0f).CGColor, UIColor.FromWhiteAlpha(0f, 1f).CGColor }; var gradient = new CAGradientLayer() { Frame = shadowView.Bounds, Colors = colors }; gradient.StartPoint = new CGPoint(Reverse ? 0f : 1f, Reverse ? 0.2f : 0f); gradient.EndPoint = new CGPoint(Reverse ? 1f : 0f, Reverse ? 0f : 1f); shadowView.Layer.InsertSublayer(gradient, 1); // add the original view into our new view view.Frame = view.Bounds; viewWithShadow.AddSubview(view); // place the shadow on top viewWithShadow.AddSubview(shadowView); return(viewWithShadow); }
internal static bool IsColorDark(this CGColor color) { var components = color.Components; var brightness = ((components[0] * 299) + (components[1] * 587) + (components[2] * 144)) / 1000; return(brightness <= 0.5); }
public override void ViewDidLoad() { base.ViewDidLoad(); CGColor[] colors = new CGColor[] { UIColor.FromRGB(98, 107, 186).CGColor, UIColor.FromRGB(57, 122, 193).CGColor }; CAGradientLayer gradientLayer = new CAGradientLayer(); gradientLayer.Frame = this.View.Bounds; gradientLayer.Colors = colors; this.View.Layer.InsertSublayer(gradientLayer, 0); btnBack.SetImage(UIImage.FromFile("back_icon.png"), UIControlState.Normal); borderPhoneNumber.Layer.BorderWidth = 2; borderPhoneNumber.Layer.BorderColor = UIColor.White.CGColor; txtPhoneNumber.AttributedPlaceholder = new NSAttributedString("Phone number", null, UIColor.White); txtPhoneNumber.ClearButtonMode = UITextFieldViewMode.WhileEditing; btnBack.TouchUpInside += (sender, e) => { this.NavigationController.PopViewController(true); }; btnSubmit.TouchUpInside += (sender, e) => { MainViewController mainViewController = this.Storyboard.InstantiateViewController("MainViewController") as MainViewController; if (mainViewController != null) { this.NavigationController.PushViewController(mainViewController, true); } }; }
public override void Draw(CGRect rect) { base.Draw(rect); var step = 1f / 6f; var locations = new nfloat[] { 0.0f, step * 1f, step * 2f, step * 3f, step * 4f, step * 5f, 1.0f }; var colors = new CGColor[] { UIColor.Red.CGColor, new CGColor(1, 0, 1, 1), UIColor.Blue.CGColor, new CGColor(0, 1, 1, 1), UIColor.Green.CGColor, new CGColor(1, 1, 0, 1), UIColor.Red.CGColor }; using (var colorSpace = CGColorSpace.CreateDeviceRGB()) using (var gradiend = new CGGradient(colorSpace, colors, locations)) { var context = UIGraphics.GetCurrentContext(); context.DrawLinearGradient(gradiend, new CGPoint(rect.Size.Width, 0), new CGPoint(0, 0), CGGradientDrawingOptions.DrawsBeforeStartLocation); } }
public static CALayer RenderMultiPolygonOnLayer(MultiPolygon multiPolygon, IStyle style, IViewport viewport) { var tile = new CAShapeLayer(); if (!(style is VectorStyle)) { throw new ArgumentException("Style is not of type VectorStyle"); } var vectorStyle = style as VectorStyle; var strokeAlpha = (float)vectorStyle.Outline.Color.A / 255; var fillAlpha = (float)vectorStyle.Fill.Color.A / 255; var strokeColor = new CGColor(new CGColor(vectorStyle.Outline.Color.R, vectorStyle.Outline.Color.G, vectorStyle.Outline.Color.B), strokeAlpha); var fillColor = new CGColor(new CGColor(vectorStyle.Fill.Color.R, vectorStyle.Fill.Color.G, vectorStyle.Fill.Color.B), fillAlpha); var path = multiPolygon.ToUIKit(viewport); tile.StrokeColor = strokeColor; tile.FillColor = fillColor; tile.LineWidth = (float)vectorStyle.Outline.Width; tile.Path = path.CGPath; return(tile); }
public async Task DeleteCalendarAsync() { try { using (await _PushMeetingsToCalendarAsyncLock.LockAsync()) { // pas de résultat if (!(await _eventStore.RequestAccessAsync(EKEntityType.Event)).Item1) { return; } var calendar = _eventStore.GetCalendar(AcraCalendarIdentifier); CGColor colorToUse = null; if (calendar != null) { colorToUse = calendar.CGColor; NSError errorToDelete;; _eventStore.RemoveCalendar(calendar, true, out errorToDelete); } } } catch (Exception e) { await App.Instance.AlertService.ShowExceptionMessageAsync(e, "Impossible de renseigner votre calendrier iOS"); } }
public void GetAXName() { TestRuntime.AssertXcodeVersion(12, TestRuntime.MinorXcode12APIMismatch); using (var c = new CGColor(CGConstantColor.Black)) { Assert.IsNotNull(c.AXName, "AXName"); } }
public void SetupViewStyle() { var profile = SL.Profile; ScoreFill = profile != null ? (float)profile.OverallSLScore / 100.0f : 0.0f; CornerRadius = 5.0f; LabelTitles = new List <string>(); ScoreValueProportions = new List <nfloat>(); BackgroundColor = UIColor.Clear; Layer.ZPosition = 1; ScoreBackgroundColor = UIColor.FromRGBA(229.0f / 255.0f, 229.0f / 255.0f, 229.0f / 255.0f, 1.0f); ScoreFillColor = UIColor.FromRGBA(51.0f / 255.0f, 171.0f / 255.0f, 151.0f / 255.0f, 1.0f).CGColor; LinesBackgroundColor = UIColor.White.CGColor; LinesFillColor = new CGColor(0, 0, 0, 0.2f); byte[] textColor = CodeBehindUIConstants.PointsViewGrayTextColor; LabelTextColor = UIColor.FromRGBA(textColor[0], textColor[1], textColor[2], textColor[3]); LabelTitles.Add("Fan"); LabelTitles.Add("Superfan"); LabelTitles.Add("Ambassador"); LabelTitles.Add("Champion"); ScoreValueProportions.Add(28f / 347f); ScoreValueProportions.Add(122f / 347f); ScoreValueProportions.Add(244f / 347f); ScoreValueProportions.Add(347f / 347f); }
public override void Draw(CGRect rect) { //Stopwatch s = new Stopwatch(); //s.Start(); //Console.WriteLine (" ----- SatBrightPickerView Draw"); CGContext context = UIGraphics.GetCurrentContext (); CGColor[] gradColors = new CGColor[] {UIColor.FromHSBA(hue,1,1,1).CGColor,new CGColor(1,1,1,1)}; nfloat[] gradLocations = new nfloat[] { 0.0f, 1.0f }; var colorSpace = CGColorSpace.CreateDeviceRGB (); CGGradient gradient = new CGGradient (colorSpace, gradColors, gradLocations); context.DrawLinearGradient(gradient,new CGPoint(rect.Size.Width,0),new CGPoint(0,0),CGGradientDrawingOptions.DrawsBeforeStartLocation); gradColors = new CGColor[] {new CGColor(0,0,0,0), new CGColor(0,0,0,1)}; gradient = new CGGradient(colorSpace,gradColors, gradLocations); context.DrawLinearGradient(gradient,new CGPoint(0,0),new CGPoint(0,rect.Size.Height),CGGradientDrawingOptions.DrawsBeforeStartLocation); gradient.Dispose(); colorSpace.Dispose(); //s.Stop(); //Console.WriteLine("-----> SatBright Draw time: " + s.Elapsed.ToString()); }
public virtual void SetHasShadow(UINavigationController controller, bool hasShadow) { var navigationBar = controller.NavigationBar; if (_shadowOpacity == float.MinValue) { // Don't do anything if user hasn't changed the shadow to true if (!hasShadow) { return; } _shadowOpacity = navigationBar.Layer.ShadowOpacity; _shadowColor = navigationBar.Layer.ShadowColor; } if (hasShadow) { navigationBar.Layer.ShadowColor = UIColor.Black.CGColor; navigationBar.Layer.ShadowOpacity = 1.0f; } else { navigationBar.Layer.ShadowColor = _shadowColor; navigationBar.Layer.ShadowOpacity = _shadowOpacity; } }
private void UpdateProperties(BorderedEntry borderedElement) { _borderColor = borderedElement.BorderColor.ToCGColor(); _borderColorActive = borderedElement.BorderColorActive.ToCGColor(); _hasBorder = borderedElement.HasBorder; _borderHeight = borderedElement.BorderHeight; }
public static void RenderGradientBackground(this CALayer layer, string color) { CAGradientLayer gradientLayer; if (layer.Sublayers != null && layer.Sublayers.Length > 0) { gradientLayer = layer.Sublayers[0] as CAGradientLayer; if (gradientLayer != null) { gradientLayer.RemoveFromSuperLayer(); gradientLayer = null; } } gradientLayer = new CAGradientLayer(); var gradientArray = color.Split(new string[] { ", " }, StringSplitOptions.RemoveEmptyEntries); NSNumber[] offsetColor = new NSNumber[gradientArray.Length]; CGColor[] colorList = new CGColor[gradientArray.Length]; for (int i = 0; i < gradientArray.Length; i++) { var gradientColorOffset = gradientArray[i].Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); colorList[i] = Xamarin.Forms.Color.FromHex(gradientColorOffset[0]).ToCGColor(); int offsetInt = Int32.Parse(gradientColorOffset[1].Replace("%", "")); float offsetFloat = offsetInt / 100f; offsetColor[i] = offsetFloat; } gradientLayer.Colors = colorList; gradientLayer.Locations = offsetColor; gradientLayer.Frame = layer.Bounds; gradientLayer.CornerRadius = layer.CornerRadius; gradientLayer.MasksToBounds = false; layer.InsertSublayer(gradientLayer, 0); }
/// <summary> /// Returns an RGB array /// </summary> /// <param name="color"></param> /// <returns></returns> public static byte[] ToColorBytes(CGColor color) { if (color == null) { return(new byte[3]); } if (color.NumberOfComponents == 1) { return(new byte[] { (byte)(color.Components[0] * 255), (byte)(color.Components[0] * 255), (byte)(color.Components[0] * 255) }); } // We always just want RGB return(new byte[] { (byte)(color.Components[0] * 255), (byte)(color.Components[1] * 255), (byte)(color.Components[2] * 255) }); }
protected override void OnElementChanged(ElementChangedEventArgs <Button> e) { base.OnElementChanged(e); UpdatePadding(); var button = Element as GradientButton; if (e.OldElement == null) { var gradient = new CAGradientLayer() { StartPoint = new CGPoint(0, 0.5), EndPoint = new CGPoint(1, 0.5) }; gradient.Locations = new NSNumber[] { .0f, 1f }; gradient.CornerRadius = Element.CornerRadius; gradient.NeedsDisplayOnBoundsChange = true; gradient.MasksToBounds = true; CGColor startColor = button?.StartColor.ToCGColor(); CGColor endColor = button?.EndColor.ToCGColor(); gradient.Colors = new CGColor[] { startColor, endColor }; var layer = Control?.Layer.Sublayers.FirstOrDefault(); Control?.Layer.InsertSublayerBelow(gradient, layer); } }
private UIView AddShadowToView(UIView view, bool reverse) { UIView containerView = view.Superview; var viewWithShadow = new UIView(view.Frame); containerView.InsertSubviewAbove(viewWithShadow, view); view.RemoveFromSuperview(); var shadowView = new UIView(viewWithShadow.Bounds); var colors = new CGColor[] { UIColor.FromWhiteAlpha(0f, 0f).CGColor, UIColor.FromWhiteAlpha(0f, 0.5f).CGColor }; var gradient = new CAGradientLayer() { Frame = shadowView.Bounds, Colors = colors }; gradient.StartPoint = new CGPoint(reverse ? 0f : 1f, 0f); gradient.EndPoint = new CGPoint(reverse ? 1f : 0f, 0f); shadowView.Layer.InsertSublayer(gradient, 1); view.Frame = view.Bounds; viewWithShadow.AddSubview(view); viewWithShadow.AddSubview(shadowView); return(viewWithShadow); }
//Generated with PaintCode 2.2 public override void Draw(CGRect rect) { base.Draw(rect); // General Declarations var colorSpace = CGColorSpace.CreateDeviceRGB(); var context = UIGraphics.GetCurrentContext(); // Color Declarations var darkBlue = UIColor.FromRGBA(0.053f, 0.123f, 0.198f, 1.000f); var lightBlue = UIColor.FromRGBA(0.191f, 0.619f, 0.845f, 1.000f); // Gradient Declarations var backgroundGradientColors = new CGColor [] {lightBlue.CGColor, darkBlue.CGColor}; var backgroundGradientLocations = new nfloat [] {0.0f, 1.0f}; var backgroundGradient = new CGGradient(colorSpace, backgroundGradientColors, backgroundGradientLocations); // Rectangle Drawing var rectangleRect = new CGRect(rect.GetMinX() + (float)Math.Floor(rect.Width * -0.12917f + 0.5f), rect.GetMinY() + (float)Math.Floor(rect.Height * 0.00000f + 0.5f), (float)Math.Floor(rect.Width * 1.00000f + 0.5f) - (float)Math.Floor(rect.Width * -0.12917f + 0.5f), (float)Math.Floor(rect.Height * 1.00000f + 0.5f) - (float)Math.Floor(rect.Height * 0.00000f + 0.5f)); var rectanglePath = UIBezierPath.FromRect(rectangleRect); context.SaveState(); rectanglePath.AddClip(); context.DrawLinearGradient(backgroundGradient, new PointF((float)rectangleRect.GetMidX(), (float)rectangleRect.GetMinY()), new PointF((float)rectangleRect.GetMidX(), (float)rectangleRect.GetMaxY()), 0); context.RestoreState(); }
public override void ViewDidLoad() { base.ViewDidLoad(); CGColor[] colors = new CGColor[] { UIColor.FromRGB(98, 107, 186).CGColor, UIColor.FromRGB(57, 122, 193).CGColor }; CAGradientLayer gradientLayer = new CAGradientLayer(); gradientLayer.Frame = this.View.Bounds; gradientLayer.Colors = colors; this.View.Layer.InsertSublayer(gradientLayer, 0); borderNewPassword.Layer.BorderWidth = 1.5f; borderNewPassword.Layer.BorderColor = UIColor.White.CGColor; borderConfirmPassword.Layer.BorderWidth = 1.5f; borderConfirmPassword.Layer.BorderColor = UIColor.White.CGColor; txtNewPassword.AttributedPlaceholder = new NSAttributedString("New password", null, UIColor.White); txtNewPassword.ClearButtonMode = UITextFieldViewMode.WhileEditing; txtConfirmPassword.AttributedPlaceholder = new NSAttributedString("Confirm password", null, UIColor.White); txtConfirmPassword.ClearButtonMode = UITextFieldViewMode.WhileEditing; btnBack.TouchUpInside += (sender, e) => { this.NavigationController.PopViewController(true); }; }
private void drawString(IBrush brush, float x, float y) { using (NSMutableAttributedString str = new NSMutableAttributedString(_text)) { NSRange range = new NSRange(0, _text.Length); var foreColor = brush.Color; using (CGColor color = new CGColor(foreColor.R / 255f, foreColor.G / 255f, foreColor.B / 255f, foreColor.A / 255f)) { str.SetAttributes(new CTStringAttributes { Font = ((IOSFont)_config.Font).InnerFont, ForegroundColor = color }, range); using (CTFramesetter frameSetter = new CTFramesetter(str)) using (CGPath path = new CGPath()) { NSRange fitRange; CGSize size = frameSetter.SuggestFrameSize(range, null, new CGSize(_maxWidth, _height), out fitRange); path.AddRect(new CGRect(x, y, size.Width, size.Height)); using (var frame = frameSetter.GetFrame(fitRange, path, null)) { frame.Draw(_context); } } } } }
public static UIImage MakeBlueSea() { UIGraphics.BeginImageContext(new System.Drawing.SizeF(640,1136)); //BEGIN PAINTCODE //// General Declarations var colorSpace = CGColorSpace.CreateDeviceRGB(); var context = UIGraphics.GetCurrentContext(); //// Color Declarations UIColor color = UIColor.FromRGBA(0.114f, 0.705f, 1.000f, 1.000f); UIColor gradientColor = UIColor.FromRGBA(0.088f, 0.606f, 0.676f, 1.000f); UIColor gradientColor2 = UIColor.FromRGBA(0.018f, 0.509f, 0.675f, 1.000f); //// Gradient Declarations var gradientColors = new CGColor [] {color.CGColor, UIColor.FromRGBA(0.066f, 0.607f, 0.837f, 1.000f).CGColor, gradientColor2.CGColor, gradientColor.CGColor}; var gradientLocations = new float [] {0, 0.21f, 0.46f, 1}; var gradient = new CGGradient(colorSpace, gradientColors, gradientLocations); //// Rectangle Drawing var rectanglePath = UIBezierPath.FromRect(new RectangleF(-46.5f, -35.5f, 728, 1192)); context.SaveState(); rectanglePath.AddClip(); context.DrawLinearGradient(gradient, new PointF(317.5f, -35.5f), new PointF(317.5f, 1156.5f), 0); context.RestoreState(); UIColor.Black.SetStroke(); rectanglePath.LineWidth = 1; rectanglePath.Stroke(); //END PAINTCODE var converted = UIGraphics.GetImageFromCurrentImageContext (); UIGraphics.EndImageContext (); return converted; }
public override void AwakeFromNib() { base.AwakeFromNib(); CGColor LightChartBackground = ColorFromArgb(248, 248, 248); CGColor LightChartGrid = ColorFromArgb(211, 211, 211); CGColor LightChartAxis = ColorFromArgb(128, 128, 128); CGColor LightChartMouse = ColorFromArgb(32, 92, 166); CGColor LightChartLegend = ColorFromArgb(64, 145, 255); CGColor LightChartLineDownload = ColorFromArgb(38, 22, 255); CGColor LightChartLineUpload = ColorFromArgb(0, 90, 0); CGColor LightChartWhite = ColorFromArgb(255, 255, 255); m_colorBackground = LightChartBackground; m_colorGrid = LightChartGrid; m_colorAxis = LightChartAxis; m_colorMouse = LightChartMouse; m_colorDownloadGraph = LightChartLineDownload; m_colorDownloadLine = LightChartLineDownload; m_colorUploadGraph = LightChartLineUpload; m_colorUploadLine = LightChartLineUpload; //m_colorLegendText = LightChartLegend; m_colorDownloadText = LightChartLineDownload; m_colorUploadText = LightChartLineUpload; m_colorWhite = LightChartWhite; m_font = new CoreText.CTFont("Menlo", 10); m_chart = Engine.Instance.Stats.Charts.ChartsList[m_chartIndex]; Engine.Instance.Stats.Charts.UpdateEvent += new Core.UI.Charts.UpdateHandler(Charts_UpdateEvent); }
public override void Draw(CGRect rect) { base.Draw(rect); GradientColorStack stack = (GradientColorStack)this.Element; CGColor startColor = stack.StartColor.ToCGColor(); CGColor endColor = stack.EndColor.ToCGColor(); #region for Vertical Gradient var gradientLayer = new CAGradientLayer(); #endregion #region for Horizontal Gradient //var gradientLayer = new CAGradientLayer() //{ // StartPoint = new CGPoint(0, 0.5), // EndPoint = new CGPoint(1, 0.5) //}; #endregion gradientLayer.Frame = rect; gradientLayer.Colors = new CGColor[] { startColor, endColor }; NativeView.Layer.InsertSublayer(gradientLayer, 0); }
public override void DrawInContext(CGContext ctx) { base.DrawInContext(ctx); //Debug.WriteLine($"---{this.Radius}"); //每四个一组 表示一个颜色 {r,g,b,a ,r,g,b,a} //var components = new nfloat[] { 1, 1, 1, 1, 1, 1, 1, 0 }; var colors = new CGColor[] { new CGColor(0.49f, 0.49f, 0.49f, 0.5f), new CGColor(0.78f, 0.78f, 0.78f, 0.2f), }; //表示渐变的开始位置 var locations = new nfloat[] { 0f, 1f }; var startCenter = this.Center;//new CGPoint(100, 100); var endCenter = this.Center;//new CGPoint(100, 100); nfloat startRadius = 0f; //nfloat endRadius = (nfloat)Math.Min(this.Frame.Width, this.Frame.Height) / 1.3f; nfloat endRadius = this.Radius; using (var colorSpace = CGColorSpace.CreateDeviceRGB()) using (var gradient = new CGGradient(colorSpace, colors, locations)) { ctx.DrawRadialGradient(gradient, startCenter, startRadius, endCenter, endRadius, CGGradientDrawingOptions.DrawsAfterEndLocation); } }
private void MakeCircularPath( double width, double height, CGColor trackColor, CGColor progressColor, double progress) { BackgroundColor = UIColor.Clear; Layer.CornerRadius = (nfloat)(width / 2); var circlePath = new UIBezierPath(); circlePath.AddArc( center: new CGPoint(x: width / 2, y: height / 2), radius: (nfloat)((width - 1.5) / 2), startAngle: (nfloat)(-0.5 * Math.PI), endAngle: (nfloat)(1.5 * Math.PI), clockWise: true ); _trackLayer.Path = circlePath.CGPath; _trackLayer.FillColor = UIColor.Clear.CGColor; _trackLayer.StrokeColor = trackColor; _trackLayer.LineWidth = (nfloat)8.0; _trackLayer.StrokeEnd = (nfloat)1.0; Layer.AddSublayer(_trackLayer); _progressLayer.Path = circlePath.CGPath; _progressLayer.FillColor = UIColor.Clear.CGColor; _progressLayer.StrokeColor = progressColor; _progressLayer.LineWidth = (nfloat)8.0; _progressLayer.StrokeEnd = (nfloat)progress; Layer.AddSublayer(_progressLayer); }
public override void Draw(CGRect rect) { try { base.Draw(rect); var stack = (CustomStackLayout)this.Element; CGColor startColor = stack.StartColor.ToCGColor(); CGColor endColor = stack.EndColor.ToCGColor(); if (stack.StartColor != Color.Transparent && stack.EndColor != Color.Transparent) { #region for Vertical Gradient var gradientLayer = new CAGradientLayer(); #endregion #region for Horizontal Gradient //var gradientLayer = new CAGradientLayer() //{ // StartPoint = new CGPoint(0, 0.5), // EndPoint = new CGPoint(1, 0.5) //}; #endregion gradientLayer.Frame = rect; gradientLayer.Colors = new CGColor[] { startColor, endColor }; NativeView.Layer.InsertSublayer(gradientLayer, 0); } }catch (Exception e) { } }
private static CAShapeLayer ApplyBorder(UIBezierPath maskPath, UIView view, CGColor color = null, float lineWidth = 2f) { const string name = "___borderlayer___"; var borderLayer = new CAShapeLayer { Frame = view.Bounds, Path = maskPath.CGPath, LineWidth = lineWidth, StrokeColor = color ?? UIColor.FromRGB(61, 71, 82).CGColor, FillColor = UIColor.Clear.CGColor, Name = name }; var maskLayer = new CAShapeLayer { Frame = view.Bounds, Path = maskPath.CGPath }; borderLayer.Mask = maskLayer; if (view.Layer.Sublayers != null && view.Layer.Sublayers.Any(x => x.Name == name)) { CALayer layer = view.Layer.Sublayers.FirstOrDefault(x => x.Name == name); view.Layer.ReplaceSublayer(layer, borderLayer); } else { view.Layer.AddSublayer(borderLayer); } return(borderLayer); }
public CheckBoxLayer () { TintColor = new CGColor (CGColorSpace.CreateDeviceRGB (), components); StrokeFactor = 0.07f; InsetFactor = 0.17f; MarkInsetFactor = 0.34f; }
CAGradientLayer CreateHorizontalLayer(CGColor[] colors) { return new CAGradientLayer { StartPoint = new PointF(0, 0.5f), EndPoint = new PointF(1, 0.5f), Colors = colors }; }
CAGradientLayer CreateVerticalLayer(CGColor[] colors) { return new CAGradientLayer { StartPoint = new PointF(0.5f, 0), EndPoint = new PointF(0.5f, 1), Colors = colors }; }
protected override void Dispose(bool disposing) { color = null; color2 = null; color3 = null; shadow = null; go = null; base.Dispose (disposing); }
public static void FillRect(CGContext context, RectangleF rect, CGColor color) { context.SaveState(); context.AddRect(rect); context.Clip(); context.SetFillColor(color); context.FillRect(rect); context.RestoreState(); }
public static void DrawEllipsis(CGContext context, RectangleF rect, CGColor color, float lineWidth) { context.SaveState(); context.SetStrokeColor(color); context.SetLineWidth(lineWidth); context.AddEllipseInRect(rect); context.StrokePath(); context.RestoreState(); }
public RectangleInfo(RectangleF rect, string name, CGColor color) { this.X = rect.X; this.Y = rect.Y; this.Width = rect.Width; this.Height = rect.Height; this.Color = color; this.Name = name; }
private void WriteColorXml(XmlWriter writer, CGColor color) { writer.WriteStartElement("Color"); writer.WriteElementString("R", color.Components[0].ToString()); writer.WriteElementString("G", color.Components[1].ToString()); writer.WriteElementString("B", color.Components[2].ToString()); writer.WriteElementString("A", color.Alpha.ToString()); writer.WriteEndElement(); }
private LayoutInfo(UIView view) { var layer = view.Layer; if (layer == null) { _isEmpty = true; return; } _borderWidth = layer.BorderWidth; _cornerRadius = layer.CornerRadius; _borderColor = layer.BorderColor; _clipsToBounds = view.ClipsToBounds; }
CALayer SetupBackgroundLayer() { backgroundLayer = new CAGradientLayer (); CGColor gradColor1 = new CGColor (13.0f / 255.0f, 116.0f / 255.0f, 1.0f,1.0f); CGColor gradColor2 = new CGColor (0.0f, 53.0f / 255.0f, 126.0f / 255.0f,1.0f); ((CAGradientLayer)backgroundLayer).Colors = new CGColor[2] { gradColor1, gradColor2 }; backgroundLayer.CornerRadius = 12.0f; CAConstraintLayoutManager layout = CAConstraintLayoutManager.LayoutManager; backgroundLayer.LayoutManager = layout; return backgroundLayer; }
public static UIImage GetGradientImage(CGColor startColor, CGColor endColor, CGSize size) { UIGraphics.BeginImageContext(size); var context = UIGraphics.GetCurrentContext(); if (context != null) { var gradientLayer = new CAGradientLayer(); gradientLayer.Frame = new CGRect(0, 0, size.Width, size.Height); gradientLayer.Colors = new CGColor[] { startColor, endColor }; gradientLayer.RenderInContext(context); UIImage gradientImage = UIGraphics.GetImageFromCurrentImageContext(); UIGraphics.EndImageContext(); return gradientImage; } return null; }
public static UIImage makeProgressImage(int width, int height, float progress, CGColor baseColor, CGColor topColor) { //Create a CGBitmapContext object CGBitmapContext ctx = new CGBitmapContext(IntPtr.Zero, width, height, 8, 4 * width, CGColorSpace.CreateDeviceRGB(), CGImageAlphaInfo.PremultipliedFirst); //Draw a rectangle with the base color ctx.SetFillColor(baseColor); ctx.FillRect(new RectangleF(0,0, width, height)); //Calculate the width of the 2nd rectangle based on the progress float percentWidth = width * progress; //Draw the second rectangle with the top color ctx.SetFillColor(topColor); ctx.FillRect(new RectangleF(0, 0, percentWidth, height)); //return a UIImage object return UIImage.FromImage(ctx.ToImage()); }
private static CALayer RenderImage(MultiPolygon multiPolygon, IStyle style, IViewport viewport) { var geom = new CAShapeLayer(); if (!(style is VectorStyle)) throw new ArgumentException("Style is not of type VectorStyle"); var vectorStyle = style as VectorStyle; float strokeAlpha = (float)vectorStyle.Outline.Color.A / 255; float fillAlpha = (float)vectorStyle.Fill.Color.A / 255; var strokeColor = new CGColor(new CGColor(vectorStyle.Outline.Color.R, vectorStyle.Outline.Color.G, vectorStyle.Outline.Color.B), strokeAlpha); var fillColor = new CGColor(new CGColor(vectorStyle.Fill.Color.R, vectorStyle.Fill.Color.G, vectorStyle.Fill.Color.B), fillAlpha); geom.StrokeColor = strokeColor; geom.FillColor = fillColor; geom.LineWidth = (float)vectorStyle.Outline.Width; var bbRect = GeometryRenderer.ConvertBoundingBox(multiPolygon.GetBoundingBox(), viewport); var offset = new CoreGraphics.CGPoint((int)bbRect.GetMinX(), (int)bbRect.GetMinY()); GeometryExtension.OffSet = offset; var path = multiPolygon.ToUIKit(viewport); var frame = new CGRect(0, 0, (int)((float)bbRect.GetMaxX() - (float)bbRect.GetMinX()), (int)((float)bbRect.GetMaxY() - (float)bbRect.GetMinY())); var size = frame.Size; geom.Path = path.CGPath; UIGraphics.BeginImageContext((CGSize)size); var context = UIGraphics.GetCurrentContext(); context.SetBlendMode(CGBlendMode.Multiply); geom.RenderInContext(context); var image = UIGraphics.GetImageFromCurrentImageContext(); var imageTile = new CALayer { Contents = image.CGImage, Frame = frame }; return imageTile; }
public static void DrawLine(CGContext context, List<PointF> points, CGColor color, float lineWidth, bool closePath, bool dashed) { if (points == null) throw new NullReferenceException(); if (points.Count == 0) throw new ArgumentException("The line must have at least one point."); context.SaveState(); context.SetStrokeColor(color); context.SetLineWidth(lineWidth); context.MoveTo(points[0].X, points[0].Y); for(int a = 1; a < points.Count; a++) context.AddLineToPoint(points[a].X, points[a].Y); if (dashed) context.SetLineDash(0, new float[2] { 1, 2 }, 2); if (closePath) context.ClosePath(); context.StrokePath(); context.RestoreState(); }
public override void Draw(RectangleF rect) { base.Draw (rect); CGContext context = UIGraphics.GetCurrentContext(); CGColorSpace colorSpace = CGColorSpace.CreateDeviceRGB(); float step=0.166666666666667f; float[] locations = new float[] { 0.00f, step, step*2, step*3, step*4, step*5, 1.0f }; CGColor c1 = new CGColor(1,0,1,1); CGColor c2 = new CGColor(1,1,0,1); CGColor c3 = new CGColor(0,1,1,1); CGColor[] colors = new CGColor[] { UIColor.Red.CGColor, c1, UIColor.Blue.CGColor, c3, UIColor.Green.CGColor, c2, UIColor.Red.CGColor }; CGGradient gradiend = new CGGradient(colorSpace,colors, locations); context.DrawLinearGradient(gradiend,new PointF(rect.Size.Width,0),new PointF(0,0),CGGradientDrawingOptions.DrawsBeforeStartLocation); gradiend.Dispose(); colorSpace.Dispose(); }
public static CALayer RenderPolygonOnLayer(Polygon polygon, IStyle style, IViewport viewport) { var tile = new CAShapeLayer(); if (!(style is VectorStyle)) throw new ArgumentException("Style is not of type VectorStyle"); var vectorStyle = style as VectorStyle; var strokeAlpha = (float)vectorStyle.Outline.Color.A / 255; var fillAlpha = (float)vectorStyle.Fill.Color.A / 255; var strokeColor = new CGColor(new CGColor(vectorStyle.Outline.Color.R, vectorStyle.Outline.Color.G, vectorStyle.Outline.Color.B), strokeAlpha); var fillColor = new CGColor(new CGColor(vectorStyle.Fill.Color.R, vectorStyle.Fill.Color.G, vectorStyle.Fill.Color.B), fillAlpha); tile.StrokeColor = strokeColor; tile.FillColor = fillColor; tile.LineWidth = (float)vectorStyle.Outline.Width; tile.Path = polygon.ToUIKit(viewport).CGPath; return tile; }
protected override bool Validating() { if (_defaultColor == null) { var firstRelationship = _sourceBindingRelationships.FirstOrDefault(); if (firstRelationship.Value != null) { var firstView = firstRelationship.Value.FirstOrDefault(); if (firstView != null) { _defaultColor = firstView.Layer.BorderColor; _defaultWidth = firstView.Layer.BorderWidth; } } } if (_sourceBindingRelationships == null) return false; foreach (var textView in _sourceBindingRelationships.SelectMany(sourceBindingRelationship => sourceBindingRelationship.Value)) { textView.Layer.BorderColor = _defaultColor; textView.Layer.BorderWidth = _defaultWidth.GetValueOrDefault(); } return true; }
public override void ViewDidLoad() { base.ViewDidLoad(); NavigationController.NavigationBar.BarStyle = UIBarStyle.Black; save = new UIBarButtonItem(UIBarButtonSystemItem.Save, async (sender, args) => { ViewModel.FirstName = TextFirst.Text.Trim(); ViewModel.LastName = TextLast.Text.Trim(); ViewModel.Email = TextEmail.Text.Trim(); ViewModel.Phone = TextPhone.Text.Trim(); BigTed.BTProgressHUD.Show("Saving contact..."); await ViewModel.SaveContact(); BigTed.BTProgressHUD.Dismiss(); NavigationController.PopToRootViewController(true); }); TextEmail.ShouldReturn += ShouldReturn; TextFirst.ShouldReturn += ShouldReturn; TextPhone.ShouldReturn += ShouldReturn; TextLast.ShouldReturn += ShouldReturn; TextEmail.ValueChanged += (sender, args) => { ImagePhoto.SetImage( url: new NSUrl(Gravatar.GetURL(TextEmail.Text, 172)), placeholder: UIImage.FromBundle("missing.png") ); }; var color = new CGColor(17.0F / 255.0F, 113.0F / 255.0F, 197.0F / 255F); TextEmail.Layer.BorderColor = color; TextFirst.Layer.BorderColor = color; TextPhone.Layer.BorderColor = color; TextLast.Layer.BorderColor = color; ButtonCall.Clicked += (sender, args) => PlaceCall(); NSNotificationCenter.DefaultCenter.AddObserver (UIKeyboard.DidShowNotification, KeyBoardUpNotification); // Keyboard Down NSNotificationCenter.DefaultCenter.AddObserver (UIKeyboard.WillHideNotification, KeyBoardDownNotification); double min = Math.Min((float)ImagePhoto.Frame.Width, (float)ImagePhoto.Frame.Height); ImagePhoto.Layer.CornerRadius = (float)(min / 2.0); ImagePhoto.Layer.MasksToBounds = false; ImagePhoto.Layer.BorderColor = new CGColor(1, 1, 1); ImagePhoto.Layer.BorderWidth = 3; ImagePhoto.ClipsToBounds = true; }
public override void Draw (RectangleF rect) { var context = UIGraphics.GetCurrentContext (); var bounds = Bounds; //UIColor background = Enabled ? isPressed ? HighlightedColor : NormalColor : DisabledColor; UIColor buttonColor = NormalColor; //UIColor.FromRGBA (0.00f, 0.37f, 0.89f, 1.00f); var buttonColorRGBA = new float[4]; buttonColor.GetRGBA ( out buttonColorRGBA [0], out buttonColorRGBA [1], out buttonColorRGBA [2], out buttonColorRGBA [3] ); if (isPressed) { // Get the Hue Saturation Brightness Alpha copy of the color var buttonColorHSBA = new float[4]; buttonColor.GetHSBA ( out buttonColorHSBA [0], out buttonColorHSBA [1], out buttonColorHSBA [2], out buttonColorHSBA [3] ); // Change the brightness to a fixed value (0.5f) buttonColor = UIColor.FromHSBA (buttonColorHSBA [0], buttonColorHSBA [1], 0.5f, buttonColorHSBA [3]); // Re-set the base buttonColorRGBA because everything else is relative to it buttonColorRGBA = new float[4]; buttonColor.GetRGBA ( out buttonColorRGBA [0], out buttonColorRGBA [1], out buttonColorRGBA [2], out buttonColorRGBA [3] ); } using (var colorSpace = CGColorSpace.CreateDeviceRGB ()) { //// Abstracted Graphic Attributes var textContent = this.Title (UIControlState.Normal); //"STOP"; var font = UIFont.SystemFontOfSize (18); // ------------- START PAINTCODE ------------- //// Color Declarations UIColor frameColorTop = UIColor.FromRGBA (0.20f, 0.20f, 0.20f, 1.00f); UIColor frameShadowColor = UIColor.FromRGBA (1.00f, 1.00f, 1.00f, 0.40f); UIColor glossyColorBottom = UIColor.FromRGBA ( (buttonColorRGBA [0] * 0.6f + 0.4f), (buttonColorRGBA [1] * 0.6f + 0.4f), (buttonColorRGBA [2] * 0.6f + 0.4f), (buttonColorRGBA [3] * 0.6f + 0.4f) ); UIColor glossyColorUp = UIColor.FromRGBA ( (buttonColorRGBA [0] * 0.2f + 0.8f), (buttonColorRGBA [1] * 0.2f + 0.8f), (buttonColorRGBA [2] * 0.2f + 0.8f), (buttonColorRGBA [3] * 0.2f + 0.8f) ); //// Gradient Declarations var glossyGradientColors = new CGColor [] {glossyColorUp.CGColor, glossyColorBottom.CGColor}; var glossyGradientLocations = new float [] {0, 1}; var glossyGradient = new CGGradient (colorSpace, glossyGradientColors, glossyGradientLocations); //// Shadow Declarations var frameInnerShadow = frameShadowColor.CGColor; var frameInnerShadowOffset = new SizeF (0, -0); var frameInnerShadowBlurRadius = 3; var buttonInnerShadow = UIColor.Black.CGColor; var buttonInnerShadowOffset = new SizeF (0, -0); var buttonInnerShadowBlurRadius = 12; var textShadow = UIColor.Black.CGColor; var textShadowOffset = new SizeF (0, -0); var textShadowBlurRadius = 1; var buttonShadow = UIColor.Black.CGColor; var buttonShadowOffset = new SizeF (0, isPressed ? 0 : 2); // ADDED this code after PaintCode var buttonShadowBlurRadius = isPressed ? 2 : 3; // ADDED this code after PaintCode //// outerFrame Drawing var outerFramePath = UIBezierPath.FromRoundedRect(new RectangleF(2.5f, 1.5f, 120, 32), 8); context.SaveState(); context.SetShadowWithColor(buttonShadowOffset, buttonShadowBlurRadius, buttonShadow); frameColorTop.SetFill(); outerFramePath.Fill(); context.RestoreState(); UIColor.Black.SetStroke(); outerFramePath.LineWidth = 1; outerFramePath.Stroke(); //// innerFrame Drawing var innerFramePath = UIBezierPath.FromRoundedRect(new RectangleF(5.5f, 4.5f, 114, 26), 5); context.SaveState(); context.SetShadowWithColor(frameInnerShadowOffset, frameInnerShadowBlurRadius, frameInnerShadow); buttonColor.SetFill(); innerFramePath.Fill(); ////// innerFrame Inner Shadow var innerFrameBorderRect = innerFramePath.Bounds; innerFrameBorderRect.Inflate(buttonInnerShadowBlurRadius, buttonInnerShadowBlurRadius); innerFrameBorderRect.Offset(-buttonInnerShadowOffset.Width, -buttonInnerShadowOffset.Height); innerFrameBorderRect = RectangleF.Union(innerFrameBorderRect, innerFramePath.Bounds); innerFrameBorderRect.Inflate(1, 1); var innerFrameNegativePath = UIBezierPath.FromRect(innerFrameBorderRect); innerFrameNegativePath.AppendPath(innerFramePath); innerFrameNegativePath.UsesEvenOddFillRule = true; context.SaveState(); { var xOffset = buttonInnerShadowOffset.Width + (float)Math.Round(innerFrameBorderRect.Width); var yOffset = buttonInnerShadowOffset.Height; context.SetShadowWithColor( new SizeF(xOffset + (xOffset >= 0 ? 0.1f : -0.1f), yOffset + (yOffset >= 0 ? 0.1f : -0.1f)), buttonInnerShadowBlurRadius, buttonInnerShadow); innerFramePath.AddClip(); var transform = CGAffineTransform.MakeTranslation(-(float)Math.Round(innerFrameBorderRect.Width), 0); innerFrameNegativePath.ApplyTransform(transform); UIColor.Gray.SetFill(); innerFrameNegativePath.Fill(); } context.RestoreState(); context.RestoreState(); UIColor.Black.SetStroke(); innerFramePath.LineWidth = 1; innerFramePath.Stroke(); //// Rounded Rectangle Drawing var roundedRectanglePath = UIBezierPath.FromRoundedRect(new RectangleF(8, 6, 109, 9), 4); context.SaveState(); roundedRectanglePath.AddClip(); context.DrawLinearGradient(glossyGradient, new PointF(62.5f, 6), new PointF(62.5f, 15), 0); context.RestoreState(); //// Text Drawing var textRect = new RectangleF(18, 6, 90, 28); context.SaveState(); context.SetShadowWithColor(textShadowOffset, textShadowBlurRadius, textShadow); glossyColorUp.SetFill(); // Use default button-drawn text //new NSString(textContent).DrawString(textRect, font, UILineBreakMode.WordWrap, UITextAlignment.Center); context.RestoreState(); // ------------- END PAINTCODE ------------- } }
public CustomCircleView(UIColor color,nfloat ang) { BackgroundColor =UIColor.Clear; this.color = color.CGColor; this.angle = ang; }
public override void Draw (RectangleF rect) { base.Draw (rect); // ------------- START PAINTCODE ---------------- //// General Declarations var colorSpace = CGColorSpace.CreateDeviceRGB (); var context = UIGraphics.GetCurrentContext (); //// Color Declarations UIColor gold = UIColor.FromRGBA (1.00f, 0.95f, 0.57f, 1.00f); UIColor brown = UIColor.FromRGBA (0.79f, 0.75f, 0.18f, 1.00f); UIColor lightBrown = UIColor.FromRGBA (0.69f, 0.57f, 0.23f, 1.00f); UIColor darkishBlue = UIColor.FromRGBA (0.20f, 0.39f, 0.98f, 1.00f); UIColor bottomColorDown = UIColor.FromRGBA (0.21f, 0.21f, 0.21f, 1.00f); //// Gradient Declarations var newGradientColors = new CGColor [] {UIColor.Black.CGColor, UIColor.White.CGColor}; var newGradientLocations = new float [] {0, 1}; var newGradient = new CGGradient (colorSpace, newGradientColors, newGradientLocations); var calendarGradientColors = new CGColor [] { UIColor.DarkGray.CGColor, UIColor.FromRGBA (0.72f, 0.72f, 0.72f, 1.00f).CGColor, UIColor.White.CGColor }; var calendarGradientLocations = new float [] {0, 0.26f, 0.26f}; var calendarGradient = new CGGradient (colorSpace, calendarGradientColors, calendarGradientLocations); //// Shadow Declarations var shadow = UIColor.DarkGray.CGColor; var shadowOffset = new SizeF (2, 2); var shadowBlurRadius = 2; //// Abstracted Graphic Attributes var monthContent = "MAR"; var dayContent = "24"; var dayFont = UIFont.FromName ("Helvetica-Bold", 24); var textContent = "News Headline"; //// Oval 11 Drawing var oval11Path = UIBezierPath.FromOval (new RectangleF (256.5f, 46.5f, 13, 14)); lightBrown.SetFill (); oval11Path.Fill (); UIColor.Black.SetStroke (); oval11Path.LineWidth = 1; oval11Path.Stroke (); //// Oval 12 Drawing var oval12Path = UIBezierPath.FromOval (new RectangleF (280.5f, 46.5f, 13, 14)); lightBrown.SetFill (); oval12Path.Fill (); UIColor.Black.SetStroke (); oval12Path.LineWidth = 1; oval12Path.Stroke (); //// Rounded Rectangle Drawing var roundedRectanglePath = UIBezierPath.FromRoundedRect (new RectangleF (8.5f, 60.5f, 37, 36), 4); context.SaveState (); context.SetShadowWithColor (shadowOffset, shadowBlurRadius, shadow); context.BeginTransparencyLayer (null); roundedRectanglePath.AddClip (); context.DrawLinearGradient (calendarGradient, new PointF (27, 96.5f), new PointF (27, 60.5f), 0); context.EndTransparencyLayer (); context.RestoreState (); UIColor.DarkGray.SetStroke (); roundedRectanglePath.LineWidth = 1; roundedRectanglePath.Stroke (); //// Rounded Rectangle 3 Drawing UIBezierPath roundedRectangle3Path = new UIBezierPath (); roundedRectangle3Path.MoveTo (new PointF (9, 91.2f)); roundedRectangle3Path.AddCurveToPoint (new PointF (12.56f, 95), new PointF (9, 93.3f), new PointF (10.32f, 95)); roundedRectangle3Path.AddLineTo (new PointF (40.94f, 95)); roundedRectangle3Path.AddCurveToPoint (new PointF (45, 91.2f), new PointF (43.18f, 95), new PointF (45, 93.3f)); roundedRectangle3Path.AddLineTo (new PointF (45, 87)); roundedRectangle3Path.AddCurveToPoint (new PointF (43.42f, 85.5f), new PointF (45, 84.9f), new PointF (45.66f, 85.5f)); roundedRectangle3Path.AddLineTo (new PointF (10.94f, 85.5f)); roundedRectangle3Path.AddCurveToPoint (new PointF (9, 87), new PointF (8.7f, 85.5f), new PointF (9, 84.9f)); roundedRectangle3Path.AddLineTo (new PointF (9, 91.2f)); roundedRectangle3Path.ClosePath (); UIColor.Red.SetFill (); roundedRectangle3Path.Fill (); //// Month Drawing var monthRect = new RectangleF (10, 84, 34, 15); UIColor.White.SetFill (); new NSString (monthContent).DrawString ( monthRect, UIFont.FromName("Helvetica-Bold", 9), UILineBreakMode.WordWrap, UITextAlignment.Center ); //// Day Drawing var dayRect = new RectangleF (0, 58, 54, 31); UIColor.Black.SetFill (); new NSString (dayContent).DrawString (dayRect, dayFont, UILineBreakMode.WordWrap, UITextAlignment.Center); //// Text Drawing var textRect = new RectangleF (54, 60, 75, 38); UIColor.Black.SetFill (); new NSString (textContent).DrawString ( textRect, UIFont.FromName("Helvetica", 16), UILineBreakMode.WordWrap, UITextAlignment.Left ); //// Star Drawing UIBezierPath starPath = new UIBezierPath (); starPath.MoveTo (new PointF (31, 14.5f)); starPath.AddLineTo (new PointF (26.24f, 21.45f)); starPath.AddLineTo (new PointF (18.16f, 23.83f)); starPath.AddLineTo (new PointF (23.3f, 30.5f)); starPath.AddLineTo (new PointF (23.06f, 38.92f)); starPath.AddLineTo (new PointF (31, 36.1f)); starPath.AddLineTo (new PointF (38.94f, 38.92f)); starPath.AddLineTo (new PointF (38.7f, 30.5f)); starPath.AddLineTo (new PointF (43.84f, 23.83f)); starPath.AddLineTo (new PointF (35.76f, 21.45f)); starPath.ClosePath (); gold.SetFill (); starPath.Fill (); brown.SetStroke (); starPath.LineWidth = 1; starPath.Stroke (); //// Blue blob Drawing UIBezierPath blueBlobPath = new UIBezierPath (); blueBlobPath.MoveTo (new PointF (256.5f, 16.5f)); blueBlobPath.AddCurveToPoint (new PointF (240.5f, 41.5f), new PointF (235.5f, 37.5f), new PointF (217.53f, 41.55f)); blueBlobPath.AddCurveToPoint (new PointF (265.5f, 30.5f), new PointF (263.47f, 41.45f), new PointF (265.5f, 30.5f)); blueBlobPath.AddCurveToPoint (new PointF (256.5f, 16.5f), new PointF (265.5f, 30.5f), new PointF (277.5f, -4.5f)); blueBlobPath.ClosePath (); blueBlobPath.MiterLimit = 2; blueBlobPath.LineJoinStyle = CGLineJoin.Round; darkishBlue.SetFill (); blueBlobPath.Fill (); bottomColorDown.SetStroke (); blueBlobPath.LineWidth = 1; blueBlobPath.Stroke (); //// Button Drawing var buttonPath = UIBezierPath.FromRoundedRect (new RectangleF (54.5f, 10.5f, 163, 31), 4); context.SaveState (); buttonPath.AddClip (); context.DrawRadialGradient (newGradient, new PointF (100.39f, 55.13f), 7.84f, new PointF (136, 26), 86.67f, CGGradientDrawingOptions.DrawsBeforeStartLocation | CGGradientDrawingOptions.DrawsAfterEndLocation); context.RestoreState (); UIColor.Black.SetStroke (); buttonPath.LineWidth = 1; buttonPath.Stroke (); //// Smiley face Drawing var smileyFacePath = UIBezierPath.FromOval (new RectangleF (159.5f, 49.5f, 47, 47)); gold.SetFill (); smileyFacePath.Fill (); UIColor.Black.SetStroke (); smileyFacePath.LineWidth = 1; smileyFacePath.Stroke (); //// Oval 2 Drawing var oval2Path = UIBezierPath.FromOval (new RectangleF (169.5f, 64.5f, 8, 8)); UIColor.Black.SetFill (); oval2Path.Fill (); UIColor.Black.SetStroke (); oval2Path.LineWidth = 1; oval2Path.Stroke (); //// Oval 3 Drawing var oval3Path = UIBezierPath.FromOval (new RectangleF (188.5f, 64.5f, 8, 8)); UIColor.Black.SetFill (); oval3Path.Fill (); UIColor.Black.SetStroke (); oval3Path.LineWidth = 1; oval3Path.Stroke (); //// Bezier 2 Drawing UIBezierPath bezier2Path = new UIBezierPath (); bezier2Path.MoveTo (new PointF (172.5f, 80.5f)); bezier2Path.AddCurveToPoint (new PointF (185.5f, 85.5f), new PointF (177.75f, 85), new PointF (182.04f, 86.03f)); bezier2Path.AddCurveToPoint (new PointF (194.5f, 79.5f), new PointF (191.27f, 84.62f), new PointF (194.5f, 79.5f)); UIColor.Black.SetStroke (); bezier2Path.LineWidth = 2; bezier2Path.Stroke (); //// Oval 5 Drawing var oval5Path = UIBezierPath.FromOval (new RectangleF (256.5f, 52.5f, 36, 33)); lightBrown.SetFill (); oval5Path.Fill (); UIColor.Black.SetStroke (); oval5Path.LineWidth = 1; oval5Path.Stroke (); //// Oval 6 Drawing var oval6Path = UIBezierPath.FromOval (new RectangleF (262.5f, 59.5f, 10, 19)); UIColor.White.SetFill (); oval6Path.Fill (); UIColor.Black.SetStroke (); oval6Path.LineWidth = 1; oval6Path.Stroke (); //// Oval 7 Drawing var oval7Path = UIBezierPath.FromOval (new RectangleF (275.5f, 59.5f, 10, 19)); UIColor.White.SetFill (); oval7Path.Fill (); UIColor.Black.SetStroke (); oval7Path.LineWidth = 1; oval7Path.Stroke (); //// Oval 9 Drawing var oval9Path = UIBezierPath.FromOval (new RectangleF (264.5f, 68.5f, 6, 5)); UIColor.Black.SetFill (); oval9Path.Fill (); UIColor.Black.SetStroke (); oval9Path.LineWidth = 1; oval9Path.Stroke (); //// Oval 10 Drawing var oval10Path = UIBezierPath.FromOval (new RectangleF (277.5f, 68.5f, 6, 5)); UIColor.Black.SetFill (); oval10Path.Fill (); UIColor.Black.SetStroke (); oval10Path.LineWidth = 1; oval10Path.Stroke (); //// Oval 4 Drawing var oval4Path = UIBezierPath.FromOval (new RectangleF (250.5f, 70.5f, 47, 24)); lightBrown.SetFill (); oval4Path.Fill (); UIColor.Black.SetStroke (); oval4Path.LineWidth = 1; oval4Path.Stroke (); //// Oval 8 Drawing var oval8Path = UIBezierPath.FromOval (new RectangleF (267.5f, 77.5f, 9, 4)); UIColor.Black.SetFill (); oval8Path.Fill (); UIColor.Black.SetStroke (); oval8Path.LineWidth = 1; oval8Path.Stroke (); //// Bezier 5 Drawing UIBezierPath bezier5Path = new UIBezierPath (); bezier5Path.MoveTo (new PointF (270.5f, 81.5f)); bezier5Path.AddCurveToPoint (new PointF (267.5f, 88.5f), new PointF (269.5f, 85.5f), new PointF (267.5f, 88.5f)); UIColor.Black.SetStroke (); bezier5Path.LineWidth = 1; bezier5Path.Stroke (); //// Bezier 6 Drawing UIBezierPath bezier6Path = new UIBezierPath (); bezier6Path.MoveTo (new PointF (272.5f, 81.5f)); bezier6Path.AddLineTo (new PointF (274.5f, 87.5f)); UIColor.Black.SetStroke (); bezier6Path.LineWidth = 1; bezier6Path.Stroke (); // ------------- END PAINTCODE ---------------- }
private UIView AddShadowToView (UIView view, bool reverse) { UIView containerView = view.Superview; var viewWithShadow = new UIView (view.Frame); containerView.InsertSubviewAbove (viewWithShadow, view); view.RemoveFromSuperview (); var shadowView = new UIView (viewWithShadow.Bounds); var colors = new CGColor[] { UIColor.FromWhiteAlpha(0f, 0f).CGColor, UIColor.FromWhiteAlpha(0f, 0.5f).CGColor }; var gradient = new CAGradientLayer () { Frame = shadowView.Bounds, Colors = colors }; gradient.StartPoint = new CGPoint (reverse ? 0f : 1f, 0f); gradient.EndPoint = new CGPoint (reverse ? 1f : 0f, 0f); shadowView.Layer.InsertSublayer (gradient, 1); view.Frame = view.Bounds; viewWithShadow.AddSubview (view); viewWithShadow.AddSubview (shadowView); return viewWithShadow; }
public override NSObject TransformedValue(NSObject value) { CGColor cgColor = new CGColor(value.Handle); return NSColor.FromCGColor(cgColor); }
//// Drawing Methods public static void DrawCellProto(float cellHeight, float cellWidth) { //// General Declarations var colorSpace = CGColorSpace.CreateDeviceRGB(); var context = UIGraphics.GetCurrentContext(); //// Color Declarations var cellBgGradientTop = UIColor.FromRGBA(0.753f, 0.725f, 0.702f, 1.000f); var cellBgGradientBottom = UIColor.FromRGBA(0.773f, 0.800f, 0.835f, 1.000f); var cellBgGradientBottomHSBA = new float[4]; cellBgGradientBottom.GetHSBA(out cellBgGradientBottomHSBA[0], out cellBgGradientBottomHSBA[1], out cellBgGradientBottomHSBA[2], out cellBgGradientBottomHSBA[3]); var color = UIColor.FromHSBA(cellBgGradientBottomHSBA[0], cellBgGradientBottomHSBA[1], 0.95f, cellBgGradientBottomHSBA[3]); //// Gradient Declarations var cellBgGradientColors = new CGColor [] {cellBgGradientBottom.CGColor, color.CGColor, cellBgGradientTop.CGColor}; var cellBgGradientLocations = new float [] {0.0f, 0.53f, 1.0f}; var cellBgGradient = new CGGradient(colorSpace, cellBgGradientColors, cellBgGradientLocations); //// Rectangle Drawing context.SaveState(); context.TranslateCTM(-71.17f, 0.0f); var rectanglePath = UIBezierPath.FromRect(new RectangleF(71.17f, 0.0f, cellWidth, cellHeight)); context.SaveState(); rectanglePath.AddClip(); context.DrawLinearGradient(cellBgGradient, new PointF(391.17f, 190.0f), new PointF(391.17f, -0.0f), 0); context.RestoreState(); context.RestoreState(); }
public override void Draw(RectangleF rectB) { CGColorSpace cs = null; CGContext ctx = null; RectangleF bds; ctx = UIGraphics.GetCurrentContext (); cs = CGColorSpace.CreateDeviceRGB (); if (Vertical){ ctx.TranslateCTM (0, Bounds.Height); ctx.ScaleCTM (1, -1); bds = Bounds; } else { ctx.TranslateCTM (0, Bounds.Height); ctx.RotateCTM ((float)Math.PI/2); bds = new RectangleF (0, 0, Bounds.Height, Bounds.Width); } ctx.SetFillColorSpace (cs); ctx.SetStrokeColorSpace (cs); if (NumLights == 0){ float currentTop = 0; if (BgColor != null){ BgColor.SetColor (); ctx.FillRect (bds); } foreach (var thisTresh in ColorThresholds){ var val = Math.Min (thisTresh.MaxValue, Level); var rect = new RectangleF (0, bds.Height * currentTop, bds.Width, bds.Height * (val - currentTop)); thisTresh.Color.SetColor (); ctx.FillRect (rect); if (Level < thisTresh.MaxValue) break; currentTop = val; } if (BorderColor != null){ BorderColor.SetColor (); bds.Inflate (-0.5f, -0.5f); ctx.StrokeRect (bds); } } else { float lightMinVal = 0; float insetAmount, lightVSpace; int peakLight = -1; lightVSpace = bds.Height / (float) NumLights; if (lightVSpace < 4) insetAmount = 0; else if (lightVSpace < 8) insetAmount = 0.5f; else insetAmount = 1; if (PeakLevel > 0){ peakLight = (int) PeakLevel * NumLights; if (peakLight >= NumLights) peakLight = NumLights-1; } for (int light_i = 0; light_i< NumLights; light_i++){ float lightMaxVal = (light_i + 1) / (float)NumLights; float lightIntensity; RectangleF lightRect; UIColor lightColor; if (light_i == peakLight){ lightIntensity = 1; } else { lightIntensity = (Level - lightMinVal) / (lightMaxVal - lightMinVal); lightIntensity = Clamp (0, lightIntensity, 1); if (!VariableLightIntensity && lightIntensity > 0) lightIntensity = 1; } lightColor = ColorThresholds [0].Color; int color_i = 0; for (; color_i < ColorThresholds.Length-1; color_i++){ var thisTresh = ColorThresholds [color_i]; var nextTresh = ColorThresholds [color_i+1]; if (thisTresh.MaxValue < lightMaxVal) lightColor = nextTresh.Color; } lightRect = new RectangleF (0, bds.Height * color_i / (float) NumLights, bds.Width, bds.Height * (1f / NumLights)); lightRect.Inflate (-insetAmount, -insetAmount); if (BgColor != null){ BgColor.SetColor (); ctx.FillRect (lightRect); } if (lightIntensity == 1){ lightColor.SetColor (); ctx.FillRect (lightRect); } else if (lightIntensity > 0){ using (var clr = new CGColor (lightColor.CGColor, lightIntensity)){ ctx.SetFillColorWithColor (clr); ctx.FillRect (lightRect); } } if (BorderColor != null){ BorderColor.SetColor (); lightRect.Inflate (-0.5f, -0.5f); ctx.StrokeRect (lightRect); } lightMinVal = lightMaxVal; } } cs.Dispose (); }