IRenderContext2D

StockSharp.Xaml.Charting.Rendering.Common

Определяет интерфейс для 2D RenderContext, позволяющий рисовать, копировать и создавать перья и кисти на RenderSurfaceBase.

Реализует: IDisposable

Свойства

Layers
public RenderOperationLayers Layers { get; }
value = iRenderContext2D.Layers

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

ViewportSize
public Size ViewportSize { get; }
value = iRenderContext2D.ViewportSize

Получает текущий размер обзорного порта.

Методы

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

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

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

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

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

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

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

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

Clear
public void Clear()
iRenderContext2D.Clear()

Очищает IRenderSurface2D

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

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

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

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

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

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

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

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

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

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

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

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

CreateSprite
public ISprite2D CreateSprite(FrameworkElement fe)
result = iRenderContext2D.CreateSprite(fe)

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

fe
DigitMaxSize
public Size DigitMaxSize(float fontSize, string fontFamily, FontWeight fontWeight)
result = iRenderContext2D.DigitMaxSize(fontSize, fontFamily, fontWeight)

Максимальный размер в пикселях

DisposeResourceAfterDraw
public void DisposeResourceAfterDraw(IDisposable disposable)
iRenderContext2D.DisposeResourceAfterDraw(disposable)

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

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

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

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

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

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

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

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

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

pen
Ручка
points
Точки

Возвращает: Последний пункт нарисованной полилинии

DrawPixelsVertically
public void DrawPixelsVertically(int x, int yStartBottom, int yEndTop, IList<int> pixelColorsArgb, double opacity, bool yAxisIsFlipped)
iRenderContext2D.DrawPixelsVertically(x, yStartBottom, yEndTop, pixelColorsArgb, opacity, yAxisIsFlipped)

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

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

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

pen
Ручка
pt1
Левая верхняя точка в квадрате
pt2
Нижняя правая точка в квадрате
DrawSprite
public void DrawSprite(ISprite2D srcSprite, Rect srcRect, Point destPoint)
iRenderContext2D.DrawSprite(srcSprite, srcRect, destPoint)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

brush
кисть
pt2
Верхняя левая точка прямоугольника
pt1
нижняя правая точка прямоугольника
gradientRotationAngle
Угол, под которым вращается щетка, по умолчанию равен нулю
SetPrimitvesCachingEnabled
public void SetPrimitvesCachingEnabled(bool bEnabled)
iRenderContext2D.SetPrimitvesCachingEnabled(bEnabled)

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

TextDrawDimensions
public void TextDrawDimensions(string text, float fontSize, Color foreColor, float width, float height, string fontFamily, FontWeight fontWeight)
iRenderContext2D.TextDrawDimensions(text, fontSize, foreColor, width, height, fontFamily, fontWeight)

Вычислить пространство, необходимое для рисования текста