void DrawFluentSliderTrackBackground(ICanvas canvas, RectangleF dirtyRect) { canvas.SaveState(); if (IsEnabled) { canvas.FillColor = MaximumTrackColor.ToGraphicsColor(Fluent.Color.Primary.ThemeLight); } else { canvas.FillColor = ColorHelper.GetGraphicsColor(Fluent.Color.Background.NeutralLighter, Fluent.Color.Background.NeutralDark); } var x = dirtyRect.X; var width = dirtyRect.Width - TextSize; var height = 4; var y = (float)((HeightRequest - height) / 2); canvas.FillRoundedRectangle(x, y, width, height, 0); canvas.RestoreState(); _trackRect = new RectangleF(x, y, width, height); }
public override void DrawBar(CGRect aRect, bool flipped) { // Mimick the dimensions of the original slider var originalHeight = aRect.Height; aRect.Height = 2.7f; var radius = aRect.Height / 2; aRect.Y += (originalHeight - aRect.Height) / 2; // Calc the progress percentage to know where one bar starts var progress = (float)((DoubleValue - MinValue) / (MaxValue - MinValue)); var minTrackRect = aRect; minTrackRect.Width *= progress; var maxTrackRect = aRect; maxTrackRect.X += maxTrackRect.Width * progress; maxTrackRect.Width = maxTrackRect.Width * (1 - progress); // Draw min track var minTrackPath = NSBezierPath.FromRoundedRect(minTrackRect, radius, radius); var defaultMinTrackColor = Color.Accent.ToNSColor(); if (Forms.IsMojaveOrNewer) { defaultMinTrackColor = NSColor.ControlAccentColor; } var minTrackColor = MinimumTrackColor.IsDefault ? defaultMinTrackColor : MinimumTrackColor.ToNSColor(); minTrackColor.SetFill(); minTrackPath.Fill(); var defaultMaxTrackColor = NSColor.ControlShadow; if (Forms.IsMojaveOrNewer) { defaultMaxTrackColor = NSColor.SeparatorColor; } // Draw max track var maxTrackPath = NSBezierPath.FromRoundedRect(maxTrackRect, radius, radius); var maxTrackColor = MaximumTrackColor.IsDefault ? defaultMaxTrackColor : MaximumTrackColor.ToNSColor(); maxTrackColor.SetFill(); maxTrackPath.Fill(); }
void DrawCupertinoSliderTrackBackground(ICanvas canvas, RectangleF dirtyRect) { canvas.SaveState(); canvas.FillColor = MaximumTrackColor.ToGraphicsColor(DefaultCupertinoSliderTrackBackgroundColor); var x = dirtyRect.X; var width = dirtyRect.Width; var height = 1; var y = (float)((HeightRequest - height) / 2); canvas.FillRoundedRectangle(x, y, width, height, 20); canvas.RestoreState(); _trackRect = new RectangleF(x, y, width, height); }
void DrawMaterialSliderTrackBackground(ICanvas canvas, RectangleF dirtyRect) { canvas.SaveState(); canvas.FillColor = MaximumTrackColor.ToGraphicsColor(Material.Color.LightBlue); var x = dirtyRect.X; var width = dirtyRect.Width; var height = 2; var y = (float)((HeightRequest - height) / 2); canvas.FillRoundedRectangle(x, y, width, height, 0); canvas.RestoreState(); _trackRect = new RectangleF(x, y, width, height); }