protected override void UpdateLayout() { base.UpdateLayout(); formsGeometry = Control.Geometry; Console.WriteLine($"formsGeometry = {formsGeometry}"); UpdateCanvasSize(formsGeometry); }
void UpdateCanvasSize(ElmSharp.Rect rect) { if (Element.Batched) { return; } double left = 0; double top = 0; double right = 0; double bottom = 0; foreach (var shadow in Self.Shadows) { if (shadow.Inset) { continue; } var spreadSize = shadow.BlurRadius * 2 + shadow.SpreadRadius; var sl = shadow.OffsetX - spreadSize; var sr = shadow.OffsetX + spreadSize; var st = shadow.OffsetY - spreadSize; var sb = shadow.OffsetY + spreadSize; if (left > sl) { left = sl; } if (top > st) { top = st; } if (right < sr) { right = sr; } if (bottom < sb) { bottom = sb; } } left -= Self.Border.LeftWidth; top -= Self.Border.TopWidth; right += Self.Border.RightWidth; bottom += Self.Border.BottomWidth; var canvasGeometry = new ElmSharp.Rect(rect.X + (int)left, rect.Y + (int)top, rect.Width + (int)right - (int)left, rect.Height + (int)bottom - (int)top); if (canvasView != null) { canvasView.Geometry = canvasGeometry; canvasView.Invalidate(); } if (debugBox != null) { debugBox.Geometry = canvasView.Geometry; } }
void UpdateShadowGeometry() { var geometry = NativeView.Geometry; if (ShadowElement.Content != null) { var contentNativeView = Platform.GetOrCreateRenderer(ShadowElement.Content)?.NativeView; if (contentNativeView != null) { geometry = contentNativeView.Geometry; } } double left = 0; double top = 0; double right = 0; double bottom = 0; var scaledOffsetX = Forms.ConvertToScaledPixel(ShadowElement.ShadowOffsetX); var scaledOffsetY = Forms.ConvertToScaledPixel(ShadowElement.ShadowOffsetY); var scaledBlurRadius = Forms.ConvertToScaledPixel(ShadowElement.ShadowBlurRadius); var spreadSize = scaledBlurRadius * 3; var sl = scaledOffsetX - spreadSize; var sr = scaledOffsetX + spreadSize; var st = scaledOffsetY - spreadSize; var sb = scaledOffsetY + spreadSize; if (left > sl) { left = sl; } if (top > st) { top = st; } if (right < sr) { right = sr; } if (bottom < sb) { bottom = sb; } var canvasGeometry = new ElmSharp.Rect( geometry.X + (int)left, geometry.Y + (int)top, geometry.Width + (int)right - (int)left, geometry.Height + (int)bottom - (int)top); if (_shadowCanvasView != null) { _shadowCanvasView.Geometry = canvasGeometry; _shadowCanvasView.Invalidate(); } }
void OnLayout() { var x = Control.Geometry.X + horizontalPadding; var y = Control.Geometry.Y; var w = (int)(Control.Geometry.Width - (horizontalPadding * 3)) / 2; var h = Control.Geometry.Height; var rectL = new ERect(x, y, w, h); _borderL.Draw(rectL); _buttonL.Geometry = rectL; var x2 = Control.Geometry.X + w + (horizontalPadding * 2); var rectR = new ERect(x2, y, w, h); _borderR.Draw(rectR); _buttonR.Geometry = rectR; }
public static Rectangle ToDP(this ERect rect) { return(new Rectangle(Forms.ConvertToScaledDP(rect.X), Forms.ConvertToScaledDP(rect.Y), Forms.ConvertToScaledDP(rect.Width), Forms.ConvertToScaledDP(rect.Height))); }
public static Rectangle ToDP(this ERect rect) { return(new Rectangle(System.Maui.Maui.ConvertToScaledDP(rect.X), System.Maui.Maui.ConvertToScaledDP(rect.Y), System.Maui.Maui.ConvertToScaledDP(rect.Width), System.Maui.Maui.ConvertToScaledDP(rect.Height))); }
public static Rect ToCommon(this ERect rect) { return(new Rect(rect.X, rect.Y, rect.Width, rect.Height)); }
public static MRect ToMultimediaRectangle(this ERect rect) { return(new MRect(rect.X, rect.Y, rect.Width, rect.Height)); }
public static Rectangle ToMultimedia(this ElmSharp.Rect rect) { return(new Rectangle(rect.X, rect.Y, rect.Width, rect.Height)); }
public static Rectangle ToSystemRectangle(this ERect rect) => new Rectangle(rect.Left, rect.Top, rect.Width, rect.Height);
public static Rect ToDP(this ERect rect) { return(new Rect(ConvertToScaledDP(rect.X), ConvertToScaledDP(rect.Y), ConvertToScaledDP(rect.Width), ConvertToScaledDP(rect.Height))); }