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:
true
if 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:
true
if 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)