CanvasControl Class
Represents a control that supports custom rendering of content.
public class CanvasControl : UIElement, IInputElement, IUIElement, ILogicalTreeNode, IDpiAwareElement, IDisposable, ICanvas
- Inheritance:
- object MarshalByRefObject DisposableObject LogicalTreeNodeBase UIElement object
Constructors
CanvasControl()
Initializes an instance of the CanvasControl class.
public CanvasControl()
CanvasControl(bool)
Initializes an instance of the CanvasControl class.
public CanvasControl(bool isForPrinter)
| Parameter | Type | Description |
|---|---|---|
| isForPrinter | bool | Whether this canvas is created for a printer. |
Properties
IsForPrinter
Gets whether this canvas is created for a printer.
protected bool IsForPrinter { get; }
Property Value
- bool:
trueif this canvas is created for a printer; otherwise,false.
Methods
CreateDrawContext(ICanvas, Graphics, Rectangle)
Creates a CanvasDrawContext for the Draw event.
protected virtual CanvasDrawContext CreateDrawContext(ICanvas canvas, Graphics platformRenderer, Rectangle bounds)
| Parameter | Type | Description |
|---|---|---|
| canvas | ICanvas | The ICanvas being drawn. |
| platformRenderer | Graphics | The native object used for drawing. |
| bounds | Rectangle | The bounds in which to draw. |
Returns
- CanvasDrawContext:
The CanvasDrawContext that was created.
CreateTextBatch()
Creates an IDisposable object that contains a reference to a text renderer, which can be passed to the RunTextFormatter(IDisposable) to more efficiently process multiple similar text layouts in a batch.
public IDisposable CreateTextBatch()
Returns
- IDisposable:
An IDisposable object. Once disposed, the batch is ended.
CreateTextLayout(ITextProvider, float, string, float, Color, FontWeights, FontStyles, IEnumerable<ITextSpacer>)
Creates an ITextLayout that can render text runs on a canvas.
public ITextLayout CreateTextLayout(ITextProvider textProvider, float maxWidth, string fontFamilyName, float fontSize, Color foreground, FontWeights fontWeight, FontStyles fontStyle, IEnumerable<ITextSpacer> spacers)
| Parameter | Type | Description |
|---|---|---|
| textProvider | ITextProvider | An ITextProvider that provides access to the text string. |
| maxWidth | float | The maximum width of the layout, which is used if word wrap is enabled. |
| fontFamilyName | string | The default font family name. |
| fontSize | float | The default font size. |
| foreground | Color | The default foreground. |
| fontWeight | FontWeights | The default font weight. |
| fontStyle | FontStyles | The default font style. |
| spacers | IEnumerable<ITextSpacer> | The optional intra-text spacers. |
Returns
- ITextLayout:
The ITextLayout that was created.
CreateTextLayout(ITextProvider, float, string, float, Color, IEnumerable<ITextSpacer>)
Creates an ITextLayout that can render text runs on a canvas.
public ITextLayout CreateTextLayout(ITextProvider textProvider, float maxWidth, string fontFamilyName, float fontSize, Color foreground, IEnumerable<ITextSpacer> spacers)
| Parameter | Type | Description |
|---|---|---|
| textProvider | ITextProvider | An ITextProvider that provides access to the text string. |
| maxWidth | float | The maximum width of the layout, which is used if word wrap is enabled. |
| fontFamilyName | string | The default font family name. |
| fontSize | float | The default font size. |
| foreground | Color | The default foreground. |
| spacers | IEnumerable<ITextSpacer> | The optional intra-text spacers. |
Returns
- ITextLayout:
The ITextLayout that was created.
CreateTextLayout(string, float, string, float, Color)
Creates an ITextLayout that can render text runs on a canvas.
public ITextLayout CreateTextLayout(string text, float maxWidth, string fontFamilyName, float fontSize, Color foreground)
| Parameter | Type | Description |
|---|---|---|
| text | string | The text string. |
| maxWidth | float | The maximum width of the layout, which is used if word wrap is enabled. |
| fontFamilyName | string | The default font family name. |
| fontSize | float | The default font size. |
| foreground | Color | The default foreground. |
Returns
- ITextLayout:
The ITextLayout that was created.
CreateTextSpacer(int, object, Size, float)
Creates an ITextSpacer that can create intra-text space within an ITextLayout.
public ITextSpacer CreateTextSpacer(int characterIndex, object key, Size size, float baseline)
| Parameter | Type | Description |
|---|---|---|
| characterIndex | int | The character index at which the spacer should be inserted. |
| key | object | An optional object that uniquely identifies the spacer. |
| size | Size | The size of the spacer. |
| baseline | float | The baseline of the spacer. |
Returns
- ITextSpacer:
The ITextSpacer that was created.
Dispose(bool)
Releases the unmanaged resources used by the object and optionally releases the managed resources.
protected override void Dispose(bool disposing)
| Parameter | Type | Description |
|---|---|---|
| disposing | bool |
|
Remarks
This method is called by the public Dispose method and the Finalize method.
Dispose invokes this method with the disposing parameter set to true.
Finalize invokes this method with disposing set to false.
DpiScaleChanged(SizeF)
Called when the DPI-based scale factor of the element changes.
public override void DpiScaleChanged(SizeF scaleFactor)
| Parameter | Type | Description |
|---|---|---|
| scaleFactor | SizeF | The new scale factor where Width is applied to the x-axis, and Height is applied to the y-axis. |
See Also
ExecuteFunc<T>(Func<T>)
Safely executes an Func<TResult> that deals with canvas resource creation and occurs outside of the Draw event handler.
public T ExecuteFunc<T>(Func<T> func)
- Type Parameters:
-
T-
| Parameter | Type | Description |
|---|---|---|
| func | Func<T> | The Func<TResult> to execute. |
Returns
- T:
trueif the canvas was ready and executed the function; otherwise,false.
GetSolidColorBrush(Color)
Returns a solid color brush for the specified Color.
public SolidBrush GetSolidColorBrush(Color color)
| Parameter | Type | Description |
|---|---|---|
| color | Color | The brush color. |
Returns
- SolidBrush:
A solid color brush for the specified Color.
GetSquiggleLinePen(Color)
Returns a squiggle line pen for the specified Color.
public Pen GetSquiggleLinePen(Color color)
| Parameter | Type | Description |
|---|---|---|
| color | Color | The pen color. |
Returns
GetSquiggleLinePen(Color, float)
Returns a squiggle line pen for the specified Color.
public Pen GetSquiggleLinePen(Color color, float thickness)
| Parameter | Type | Description |
|---|---|---|
| color | Color | The pen color. |
| thickness | float | The pen thickness. |
Returns
InvalidateRender()
Invalidates and repaints the control.
public void InvalidateRender()
OnRender(PaintEventArgs)
Occurs when rendering the control.
protected override void OnRender(PaintEventArgs e)
| Parameter | Type | Description |
|---|---|---|
| e | PaintEventArgs | The |
RenderToPrinter(Graphics, Rectangle)
Renders to an offscreen printer Graphics.
protected void RenderToPrinter(Graphics platformRenderer, Rectangle bounds)
| Parameter | Type | Description |
|---|---|---|
| platformRenderer | Graphics | The Graphics to use. |
| bounds | Rectangle | The bounds in which to render. |
Events
Draw
Occurs when the canvas should be rendered.
Inherited Members
- UIElement.logger
- UIElement.AddPendingGraphicsInversion(Rectangle)
- UIElement.AddPendingScrollOperation(Rectangle, Orientation, int)
- UIElement.AddPendingScrollOperation(Rectangle, int, int)
- UIElement.Arrange(Rectangle)
- UIElement.ArrangeOverride(Size)
- UIElement.CaptureMouse()
- UIElement.ContainsLocation(Point)
- UIElement.CreateGraphics()
- UIElement.GetCursor(Point)
- UIElement.Invalidate()
- UIElement.Invalidate(Rectangle)
- UIElement.Invalidate(InvalidationLevels, InvalidationTypes)
- UIElement.InvalidateArrange()
- UIElement.InvalidateMeasure()
- UIElement.Measure(Graphics, Size)
- UIElement.MeasureOverride(Graphics, Size)
- UIElement.OnClick(MouseEventArgs)
- UIElement.OnDoubleClick(MouseEventArgs)
- UIElement.OnMouseCaptureLost(EventArgs)
- UIElement.OnMouseDown(MouseEventArgs)
- UIElement.OnMouseEnter(MouseEventArgs)
- UIElement.OnMouseHover(MouseEventArgs)
- UIElement.OnMouseLeave(MouseEventArgs)
- UIElement.OnMouseMove(MouseEventArgs)
- UIElement.OnMouseUp(MouseEventArgs)
- UIElement.OnMouseWheel(MouseEventArgs)
- UIElement.OnParentChanged()
- UIElement.OnRenderChildElements(PaintEventArgs)
- UIElement.OnResize(EventArgs)
- UIElement.PostArrangeOverride()
- UIElement.ReleaseMouseCapture()
- UIElement.Render(PaintEventArgs)
- UIElement.TransformToAncestor(IUIElement)
- UIElement.TransformToDescendant(IUIElement)
- UIElement.UpdateLayout()
- UIElement.ActualHeight
- UIElement.ActualWidth
- UIElement.Bounds
- UIElement.CaptureMouseWhenPressed
- UIElement.ClipBounds
- UIElement.DesiredSize
- UIElement.DpiScaleFactor
- UIElement.InvalidateOnMouseEvents
- UIElement.IsArrangeValid
- UIElement.IsMeasureValid
- UIElement.IsMouseCaptured
- UIElement.IsRightToLeft
- UIElement.Size
- UIElement.VisualOffset
- UIElement.Click
- UIElement.DoubleClick
- UIElement.MouseCaptureLost
- UIElement.MouseDown
- UIElement.MouseEnter
- UIElement.MouseHover
- UIElement.MouseLeave
- UIElement.MouseMove
- UIElement.MouseUp
- UIElement.MouseWheel
- UIElement.Resize
- LogicalTreeNodeBase.CreateChildren()
- DisposableObject.Dispose()
- DisposableObject.VerifyNotDisposed()
- DisposableObject.IsDisposed
- DisposableObject.Disposed
- MarshalByRefObject.GetLifetimeService()
- MarshalByRefObject.InitializeLifetimeService()
- MarshalByRefObject.MemberwiseClone(bool)
- object.GetType()
- object.MemberwiseClone()
- object.ToString()
- object.Equals(object)
- object.Equals(object, object)
- object.ReferenceEquals(object, object)
- object.GetHashCode()
Extension Methods
- DpiAwareElementExtensions.AutoScaleFont(IDpiAwareElement, Font)
- DpiAwareElementExtensions.AutoScaleFontSize(IDpiAwareElement, float)
- DpiAwareElementExtensions.ScaleLogicalValue(IDpiAwareElement, Padding)
- DpiAwareElementExtensions.ScaleLogicalValue(IDpiAwareElement, Point)
- DpiAwareElementExtensions.ScaleLogicalValue(IDpiAwareElement, Rectangle)
- DpiAwareElementExtensions.ScaleLogicalValue(IDpiAwareElement, Size)
- DpiAwareElementExtensions.ScaleLogicalValue(IDpiAwareElement, SizeF)
- DpiAwareElementExtensions.ScaleLogicalValue(IDpiAwareElement, int)
- DpiAwareElementExtensions.ScaleLogicalValue(IDpiAwareElement, float)
- DpiAwareElementExtensions.ScaleLogicalValue(IDpiAwareElement, Padding)
- DpiAwareElementExtensions.SynchronizeScaleFactorWithChildren(IDpiAwareElement)