RenderContextBase

StockSharp.Xaml.Charting.Rendering.Common

Определяет базовый класс для разработчиков IRenderContext2D, позволяющий рисовать, копировать и создавать перья и кисти на RenderSurfaceBase

Реализует: IRenderContext2D, IDisposable

Свойства

Layers
public abstract RenderOperationLayers Layers { get; }
value = renderContextBase.Layers

Получает коллекцию уровней RenderOperationLayer, которые позволяют размещать операции рендеринга в многоуровневой очереди для последующего выполнения в порядке (и правильного Z-заказа).

ViewportSize
public abstract Size ViewportSize { get; }
value = renderContextBase.ViewportSize

Получает размер текущего обзорного порта для этой операции рендеринга

Методы

BeginLine
public abstract IPathDrawingContext BeginLine(IPen2D pen, double startX, double startY)
result = renderContextBase.BeginLine(pen, startX, startY)

Начинается сегмент Polyline, возвращая IPathDrawingContext. Это самый быстрый способ нарисовать линии и просто метод прокси для точки.

pen
Ручка для сегмента линии
startX
Координат старта X (пиксельный коорд)
startY
Координат начала Y (пиксельный координ)

Возвращает: IPathDrawingContext чтобы продолжить линию

BeginPolygon
public abstract IPathDrawingContext BeginPolygon(IBrush2D brush, double startX, double startY, double gradientRotationAngle)
result = renderContextBase.BeginPolygon(brush, startX, startY, gradientRotationAngle)

Начинает заполненный сегмент Polygon, возвращая IPathDrawingContext. Это самый быстрый способ нарисовать многоугольник и просто прокси-метод.

brush
Кисть для полигонного заполнения
startX
Координат старта X (пиксельный коорд)
startY
Координат начала Y (пиксельный координ)
gradientRotationAngle
Угол, под которым вращается кисть

Возвращает: IPathDrawingContext для продолжения многоугольника

Clear
public abstract void Clear()
renderContextBase.Clear()

Очищает IRenderSurface2D

ClipArea
protected IEnumerable<Point> ClipArea(IEnumerable<Tuple<Point, Point>> lines)
result = renderContextBase.ClipArea(lines)

Используется внутри для подрезания области StackedMountainSeries к видопорту

lines
Коллекция линий, которые представляют границы сегмента полигона
ClipArea
protected IEnumerable<Point> ClipArea(IEnumerable<Point> points, int xExtension, int yExtension)
result = renderContextBase.ClipArea(points, xExtension, yExtension)

Используется внутри для подрезания полигона или линейного сегмента к видопорту

ClipLine
internal static bool ClipLine(Point pt1, Point pt2, Size viewportSize)
result = RenderContextBase.ClipLine(pt1, pt2, viewportSize)

Возвращает: ложно, если линия находится вне видимой области

ClipZeroLineForArea
protected double ClipZeroLineForArea(double zeroLine, bool isVerticalChart)
result = renderContextBase.ClipZeroLineForArea(zeroLine, isVerticalChart)

Используется внутри: Закрывает нулевую линию (e.g. в горных заполнениях) на видоискатель

CreateBrush
public abstract IBrush2D CreateBrush(Color color, double opacity, bool? alphaBlend)
result = renderContextBase.CreateBrush(color, opacity, alphaBlend)

Создает IBrush2D, действительный для текущего пропуска рендеринга. Используйте это для рисования прямоугольников, полигонов и затененных областей

color
Цвет кисти, поддерживает прозрачность
opacity
Непрозрачность кисти
alphaBlend
Если это правда, используйте альфаблендирование при затенении. Если нет, автоматически определите цвет

Возвращает: Пример IBrush2D

CreateBrush
public abstract IBrush2D CreateBrush(Brush brush, double opacity, TextureMappingMode textureMappingMode)
result = renderContextBase.CreateBrush(brush, opacity, textureMappingMode)

Создает IBrush2D от WPF Brush, действительный для текущего пропуска рендеринга. Используйте это для рисования прямоугольников, полигонов и затененных областей

brush
WPF Brush для использования в качестве источника, e.g. это может быть , или это может быть . Обратите внимание, что твердые цвета поддерживают прозрачность и быстрее, чем градиентные кисти.
opacity
Непрозрачность кисти
textureMappingMode

Возвращает: Пример IBrush2D

CreatePen
public abstract IPen2D CreatePen(Color color, bool antiAliasing, float strokeThickness, double opacity, double[] strokeDashArray, PenLineCap strokeEndLineCap)
result = renderContextBase.CreatePen(color, antiAliasing, strokeThickness, opacity, strokeDashArray, strokeEndLineCap)

Создает IPen2D, действительный для текущего пропуска рендеринга. Используйте это, чтобы нарисовать контуры, квадраты и линии

color
Цвет ручки поддерживает прозрачность
antiAliasing
Если это правда, используйте противорвотные средства
strokeThickness
Толщина удара, по умолчанию = 1,0
opacity
Непрозрачность пера
strokeDashArray
strokeEndLineCap

Возвращает: Пример IPen2D

CreateSprite
public abstract ISprite2D CreateSprite(FrameworkElement fe)
result = renderContextBase.CreateSprite(fe)

Создает Sprite от FrameworkElement путем рендеринга на растровую карту. Это может быть использовано в методе Point для многократного вывода на экран.

fe
Dispose
public abstract void Dispose()
renderContextBase.Dispose()

Выполняет определяемые приложением задачи, связанные с освобождением, освобождением или сбросом неуправляемых ресурсов.

DisposeResourceAfterDraw
public abstract void DisposeResourceAfterDraw(IDisposable disposable)
renderContextBase.DisposeResourceAfterDraw(disposable)

Назовите этот метод, проходя в одноразовом экземпляре, чтобы распоряжаться после завершения прохождения рендеринга. Называется внутри Ultrachart для ленивого удаления кистей и текстур Direct2D и Direct3D

disposable
DrawEllipse
public abstract void DrawEllipse(IPen2D strokePen, IBrush2D fillBrush, Point center, double width, double height)
renderContextBase.DrawEllipse(strokePen, fillBrush, center, width, height)

Рисует Эллипс на IRenderSurface2D, используя указанный контур IPen2D и заполняет IBrush2D

strokePen
Штриховая ручка
fillBrush
Заливная кисть
center
Центр эллипса в пикселях
width
Ширина эллипса в пикселях
height
Высота эллипса в пикселях
DrawEllipses
public abstract void DrawEllipses(IPen2D strokePen, IBrush2D fillBrush, IEnumerable<Point> centres, double width, double height)
renderContextBase.DrawEllipses(strokePen, fillBrush, centres, width, height)

Рисует 0..N Эллипсы в точках, пройденных с одинаковой шириной, высотой, пером и кистью

strokePen
fillBrush
centres
Точки для рисования эллипсов на
width
Общая ширина для всех эллипсов
height
Общая высота для всех эллипсов
DrawLine
public virtual void DrawLine(IPen2D pen, Point pt1, Point pt2)
renderContextBase.DrawLine(pen, pt1, pt2)

Нарисуйте одну строку на IRenderSurface2D, используя указанный IPen2D. Примечание для более быстрой реализации в некоторых растеризаторах, используйте DrawLines

pen
Ручка
pt1
Начало строки в пикселях
pt2
Конец строки в пикселях
DrawLines
public virtual void DrawLines(IPen2D pen, IEnumerable<Point> points)
renderContextBase.DrawLines(pen, points)

Нарисуйте многоточечную линию на IRenderSurface2D, используя указанный IPen2D

pen
Ручка
points
Точки.
DrawPixelsVertically
public abstract void DrawPixelsVertically(int x, int yStartBottom, int yEndTop, IList<int> pixelColorsArgb, double opacity, bool yAxisIsFlipped)
renderContextBase.DrawPixelsVertically(x, yStartBottom, yEndTop, pixelColorsArgb, opacity, yAxisIsFlipped)

Линия вертикального сканирования для тепловой карты снизу вверх, от yStart до yEnd

x
Экран X координирует, где рисовать пиксели
yStartBottom
Экран Y координаты дна вертикальной линии сканирования. Может располагаться вне видимой области, в этом случае отображаются не все пиксели в списке
yEndTop
Экран Y координаты вершины вертикальной линии сканирования. Может располагаться вне видимой области, в этом случае отображаются не все пиксели в списке
pixelColorsArgb
Цвета, применяемые к вертикальной линии сканирования
opacity
Непрозрачность вертикальной скалины, от 0,0 до 1,0
yAxisIsFlipped
Если же ось вывернута, то ось перевернута.
DrawQuad
public virtual void DrawQuad(IPen2D pen, Point pt1, Point pt2)
renderContextBase.DrawQuad(pen, pt1, pt2)

Нарисуйте Quad на IRenderSurface2D, используя указанный IPen2D

pen
Ручка
pt1
pt2
DrawSprite
public abstract void DrawSprite(ISprite2D srcSprite, Rect srcRect, Point destPoint)
renderContextBase.DrawSprite(srcSprite, srcRect, destPoint)

Отображает исходное изображение на IRenderSurface2D

srcSprite
Источник спрайт для рендеринга
srcRect
Прямоугольник источника
destPoint
Пункт назначения, который будет верхне-левой координатой спрайта после заблевания
DrawSprites
public abstract void DrawSprites(ISprite2D sprite2D, Rect srcRect, IEnumerable<Point> points)
renderContextBase.DrawSprites(sprite2D, srcRect, points)

Пакетный рисунок исходного спрайта на IRenderSurface2D

sprite2D
Спрайт, чтобы сделать
srcRect
Прямоугольник источника
points
Точки для рисования спрайтов в
DrawSprites
public abstract void DrawSprites(ISprite2D sprite2D, IEnumerable<Rect> dstRects)
renderContextBase.DrawSprites(sprite2D, dstRects)

Пакетный рисунок исходного спрайта на IRenderSurface2D

sprite2D
Спрайт, чтобы сделать
dstRects
Прямоугольники назначения для рисования спрайтов в
DrawText
public void DrawText(string text, Rect dstBoundingRect, AlignmentX alignX, AlignmentY alignY, Color foreColor, float fontSize, string fontFamily, FontWeight fontWeight)
renderContextBase.DrawText(text, dstBoundingRect, alignX, alignY, foreColor, fontSize, fontFamily, fontWeight)

Нарисуйте текст, если он не выходит наружу

dstBoundingRect
alignY
foreColor
fontSize
text
fontFamily
fontWeight
alignX
DrawText
public void DrawText(string text, Point basePoint, AlignmentX alignX, AlignmentY alignY, Color foreColor, float fontSize, string fontFamily, FontWeight fontWeight)
renderContextBase.DrawText(text, basePoint, alignX, alignY, foreColor, fontSize, fontFamily, fontWeight)

Рисуем текст относительно базовой точки

FillArea
public abstract void FillArea(IBrush2D brush, IEnumerable<Tuple<Point, Point>> lines, bool isVerticalChart, double gradientRotationAngle)
renderContextBase.FillArea(brush, lines, isVerticalChart, gradientRotationAngle)

Заполняет область, ограниченную двумя сегментами строки, e.g, как в сложенной горной диаграмме, используя указанный IBrush2D

brush
кисть
lines
Список линий, представляющих сегменты полигона
isVerticalChart
Значение указывает, является ли диаграмма вертикальной.
gradientRotationAngle
Угол, под которым вращается кисть
FillPolygon
public virtual void FillPolygon(IBrush2D brush, IEnumerable<Point> points)
renderContextBase.FillPolygon(brush, points)

Заполняет многоугольник на IRenderSurface2D с помощью спецификации IBrush2D

brush
кисть
points
Список точек, определяющих замкнутый многоугольник, где X,Y координаты в направлении по часовой стрелке
FillRectangle
public abstract void FillRectangle(IBrush2D brush, Point pt1, Point pt2, double gradientRotationAngle)
renderContextBase.FillRectangle(brush, pt1, pt2, gradientRotationAngle)

Заполняет прямоугольник на IRenderSurface2D с помощью указанного IBrush2D

brush
кисть
pt1
pt2
gradientRotationAngle
Угол, под которым вращается кисть
IsInBounds
protected bool IsInBounds(Point pt)
result = renderContextBase.IsInBounds(pt)

Возвращается истинно, если точка находится внутри точки обзора.

SetPrimitvesCachingEnabled
public virtual void SetPrimitvesCachingEnabled(bool bEnabled)
renderContextBase.SetPrimitvesCachingEnabled(bEnabled)

Оптимизация включения / отключения примитов (только рендер Direct3D)