Table of Contents

Interface IDrawnBase

Namespace
DrawnUi.Draw
Assembly
DrawnUi.Maui.dll
public interface IDrawnBase : IDisposable, ICanBeUpdatedWithContext, ICanBeUpdated
Inherited Members
Extension Methods

Properties

ClipEffects

bool ClipEffects { get; set; }

Property Value

bool

Destination

SKRect Destination { get; }

Property Value

SKRect

DrawingRect

SKRect DrawingRect { get; }

Property Value

SKRect

Height

double Height { get; }

Property Value

double

HeightRequest

double HeightRequest { get; set; }

Property Value

double

InputTransparent

bool InputTransparent { get; set; }

Property Value

bool

IsClippedToBounds

bool IsClippedToBounds { get; set; }

Property Value

bool

IsDisposed

bool IsDisposed { get; }

Property Value

bool

IsDisposing

bool IsDisposing { get; }

Property Value

bool

IsVisible

bool IsVisible { get; set; }

Property Value

bool

MeasuredSize

ScaledSize MeasuredSize { get; }

Property Value

ScaledSize

PostAnimators

Executed after the rendering

List<IOverlayEffect> PostAnimators { get; }

Property Value

List<IOverlayEffect>

RenderingScale

float RenderingScale { get; }

Property Value

float

ShouldInvalidateByChildren

bool ShouldInvalidateByChildren { get; }

Property Value

bool

Tag

string Tag { get; }

Property Value

string

TranslationX

double TranslationX { get; }

Property Value

double

TranslationY

double TranslationY { get; }

Property Value

double

UpdateLocks

int UpdateLocks { get; }

Property Value

int

Views

For code-behind access of children, XAML is using Children property

List<SkiaControl> Views { get; }

Property Value

List<SkiaControl>

Width

double Width { get; }

Property Value

double

WidthRequest

double WidthRequest { get; set; }

Property Value

double

X

double X { get; }

Property Value

double

Y

double Y { get; }

Property Value

double

Methods

AddSubView(SkiaControl)

Directly adds a view to the control, without any layouting. Use this instead of Views.Add() to avoid memory leaks etc

void AddSubView(SkiaControl view)

Parameters

view SkiaControl

ClipSmart(SKCanvas, SKPath, SKClipOperation)

Clip using internal custom settings of the control

void ClipSmart(SKCanvas canvas, SKPath path, SKClipOperation operation = SKClipOperation.Intersect)

Parameters

canvas SKCanvas
path SKPath
operation SKClipOperation

CreateClip(object, bool, SKPath)

Creates a new disposable SKPath for clipping content according to the control shape and size. Create this control clip for painting content. Pass arguments if you want to use some time-frozen data for painting at any time from any thread.. If applyPosition is false will create clip without using drawing posiition, like if was drawing at 0,0.

SKPath CreateClip(object arguments, bool usePosition, SKPath path = null)

Parameters

arguments object
usePosition bool
path SKPath

Returns

SKPath

DisposeObject(IDisposable, string)

void DisposeObject(IDisposable value, string caller = null)

Parameters

value IDisposable
caller string

GetOnScreenVisibleArea(DrawingContext, Vector2)

For virtualization. For this method to be conditional we introduced the pixelsDestination parameter so that the Parent could return different visible areas upon context. Normally pass your current destination you are drawing into as this parameter.

ScaledRect GetOnScreenVisibleArea(DrawingContext context, Vector2 inflateByPixels = default)

Parameters

context DrawingContext
inflateByPixels Vector2

Returns

ScaledRect

Invalidate()

Invalidates the measured size. May or may not call Update() inside, depends on control

void Invalidate()

InvalidateByChild(SkiaControl)

This is needed by layout to track which child changed to sometimes avoid recalculating other children

void InvalidateByChild(SkiaControl skiaControl)

Parameters

skiaControl SkiaControl

InvalidateParents()

If need the re-measure all parents because child-auto-size has changed

void InvalidateParents()

InvalidateViewport()

void InvalidateViewport()

InvalidateViewsList()

void InvalidateViewsList()

IsVisibleInViewTree()

bool IsVisibleInViewTree()

Returns

bool

RegisterAnimator(ISkiaAnimator)

bool RegisterAnimator(ISkiaAnimator animator)

Parameters

animator ISkiaAnimator

Returns

bool

RegisterGestureListener(ISkiaGestureListener)

void RegisterGestureListener(ISkiaGestureListener gestureListener)

Parameters

gestureListener ISkiaGestureListener

RemoveSubView(SkiaControl)

Directly removes a view from the control, without any layouting. Use this instead of Views.Remove() to avoid memory leaks etc

void RemoveSubView(SkiaControl view)

Parameters

view SkiaControl

Repaint()

void Repaint()

UnregisterAllAnimatorsByType(Type)

IEnumerable<ISkiaAnimator> UnregisterAllAnimatorsByType(Type type)

Parameters

type Type

Returns

IEnumerable<ISkiaAnimator>

UnregisterAnimator(Guid)

void UnregisterAnimator(Guid uid)

Parameters

uid Guid

UnregisterGestureListener(ISkiaGestureListener)

void UnregisterGestureListener(ISkiaGestureListener gestureListener)

Parameters

gestureListener ISkiaGestureListener

UpdateByChild(SkiaControl)

To track dirty area when Updating parent

void UpdateByChild(SkiaControl skiaControl)

Parameters

skiaControl SkiaControl