CanvasControl Class
Represents a control that supports custom rendering of content.
public class CanvasControl : Control, ICanvas
- Inheritance:
- object Visual UIElement FrameworkElement Control object
- Implements:
- ICanvas
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, DrawingContext, Rect)
Creates a CanvasDrawContext for the Draw event.
protected virtual CanvasDrawContext CreateDrawContext(ICanvas canvas, DrawingContext platformRenderer, Rect bounds)
Parameter | Type | Description |
---|---|---|
canvas | ICanvas | The ICanvas being drawn. |
platformRenderer | DrawingContext | The native object used for drawing. |
bounds | Rect | 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, Brush, IEnumerable<ITextSpacer>)
Creates an ITextLayout that can render text runs on a canvas.
public ITextLayout CreateTextLayout(ITextProvider textProvider, float maxWidth, string fontFamilyName, float fontSize, Brush 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 | Brush | The default foreground. |
spacers | IEnumerable<ITextSpacer> | The optional intra-text spacers. |
Returns
- ITextLayout:
The ITextLayout that was created.
CreateTextLayout(ITextProvider, float, string, float, Brush, FontWeight, FontStyle, IEnumerable<ITextSpacer>)
Creates an ITextLayout that can render text runs on a canvas.
public ITextLayout CreateTextLayout(ITextProvider textProvider, float maxWidth, string fontFamilyName, float fontSize, Brush foreground, FontWeight fontWeight, FontStyle 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 | Brush | The default foreground. |
fontWeight | FontWeight | The default font weight. |
fontStyle | FontStyle | 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(ITextProvider, float, string, float, Color, FontWeight, FontStyle, 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, FontWeight fontWeight, FontStyle 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 | FontWeight | The default font weight. |
fontStyle | FontStyle | The default font style. |
spacers | IEnumerable<ITextSpacer> | The optional intra-text spacers. |
Returns
- ITextLayout:
The ITextLayout that was created.
CreateTextLayout(string, float, string, float, Brush)
Creates an ITextLayout that can render text runs on a canvas.
public ITextLayout CreateTextLayout(string text, float maxWidth, string fontFamilyName, float fontSize, Brush 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 | Brush | The default foreground. |
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, double)
Creates an ITextSpacer that can create intra-text space within an ITextLayout.
public ITextSpacer CreateTextSpacer(int characterIndex, object key, Size size, double 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 | double | The baseline of the spacer. |
Returns
- ITextSpacer:
The ITextSpacer that was created.
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 SolidColorBrush GetSolidColorBrush(Color color)
Parameter | Type | Description |
---|---|---|
color | Color | The brush color. |
Returns
- SolidColorBrush:
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(DrawingContext)
Occurs when rendering the control.
protected override void OnRender(DrawingContext drawingContext)
Parameter | Type | Description |
---|---|---|
drawingContext | DrawingContext | The DrawingContext to use for rendering. |
Events
Draw
Occurs when the canvas should be rendered.