protected override void UpdateLayout() { base.UpdateLayout(); if (_backgroundCanvas.IsValueCreated) { BackgroundCanvas.Geometry = Control.Geometry; } if (_clipper.IsValueCreated) { ClipperCanvas.Geometry = Control.Geometry; ClipperCanvas.Invalidate(); } }
protected virtual void OnLayout(object sender, Native.LayoutEventArgs e) { RealControl.Geometry = Control.Geometry; if (_backgroundCanvas.IsValueCreated) { BackgroundCanvas.Geometry = Control.Geometry; } if (_clipper.IsValueCreated) { ClipperCanvas.Geometry = Control.Geometry; ClipperCanvas.Invalidate(); } }
protected override void Dispose(bool disposing) { if (disposing) { if (Control != null) { Control.LayoutUpdated -= OnLayout; } if (_backgroundCanvas.IsValueCreated) { BackgroundCanvas.PaintSurface -= OnBackgroundPaint; BackgroundCanvas.Unrealize(); _backgroundCanvas = null; } if (_clipper.IsValueCreated) { ClipperCanvas.PaintSurface -= OnClipperPaint; ClipperCanvas.Unrealize(); _clipper = null; } } base.Dispose(disposing); }