RenderContextBase
Определяет базовый класс для разработчиков IRenderContext2D, позволяющий рисовать, копировать и создавать перья и кисти на RenderSurfaceBase
Реализует: IRenderContext2D, IDisposable
Свойства
public abstract RenderOperationLayers Layers { get; }
value = renderContextBase.Layers
Получает коллекцию уровней RenderOperationLayer, которые позволяют размещать операции рендеринга в многоуровневой очереди для последующего выполнения в порядке (и правильного Z-заказа).
public abstract Size ViewportSize { get; }
value = renderContextBase.ViewportSize
Получает размер текущего обзорного порта для этой операции рендеринга
Методы
public abstract IPathDrawingContext BeginLine(IPen2D pen, double startX, double startY)
result = renderContextBase.BeginLine(pen, startX, startY)
Начинается сегмент Polyline, возвращая IPathDrawingContext. Это самый быстрый способ нарисовать линии и просто метод прокси для точки.
- pen
- Ручка для сегмента линии
- startX
- Координат старта X (пиксельный коорд)
- startY
- Координат начала Y (пиксельный координ)
Возвращает: IPathDrawingContext чтобы продолжить линию
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 для продолжения многоугольника
protected IEnumerable<Point> ClipArea(IEnumerable<Tuple<Point, Point>> lines)
result = renderContextBase.ClipArea(lines)
Используется внутри для подрезания области StackedMountainSeries к видопорту
- lines
- Коллекция линий, которые представляют границы сегмента полигона
protected IEnumerable<Point> ClipArea(IEnumerable<Point> points, int xExtension, int yExtension)
result = renderContextBase.ClipArea(points, xExtension, yExtension)
Используется внутри для подрезания полигона или линейного сегмента к видопорту
internal static bool ClipLine(Point pt1, Point pt2, Size viewportSize)
result = RenderContextBase.ClipLine(pt1, pt2, viewportSize)
Возвращает: ложно, если линия находится вне видимой области
protected double ClipZeroLineForArea(double zeroLine, bool isVerticalChart)
result = renderContextBase.ClipZeroLineForArea(zeroLine, isVerticalChart)
Используется внутри: Закрывает нулевую линию (e.g. в горных заполнениях) на видоискатель
public abstract IBrush2D CreateBrush(Color color, double opacity, bool? alphaBlend)
result = renderContextBase.CreateBrush(color, opacity, alphaBlend)
Создает IBrush2D, действительный для текущего пропуска рендеринга. Используйте это для рисования прямоугольников, полигонов и затененных областей
- color
- Цвет кисти, поддерживает прозрачность
- opacity
- Непрозрачность кисти
- alphaBlend
- Если это правда, используйте альфаблендирование при затенении. Если нет, автоматически определите цвет
Возвращает: Пример IBrush2D
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
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
public abstract ISprite2D CreateSprite(FrameworkElement fe)
result = renderContextBase.CreateSprite(fe)
Создает Sprite от FrameworkElement путем рендеринга на растровую карту. Это может быть использовано в методе Point для многократного вывода на экран.
- fe
public abstract void Dispose()
renderContextBase.Dispose()
Выполняет определяемые приложением задачи, связанные с освобождением, освобождением или сбросом неуправляемых ресурсов.
public abstract void DisposeResourceAfterDraw(IDisposable disposable)
renderContextBase.DisposeResourceAfterDraw(disposable)
Назовите этот метод, проходя в одноразовом экземпляре, чтобы распоряжаться после завершения прохождения рендеринга. Называется внутри Ultrachart для ленивого удаления кистей и текстур Direct2D и Direct3D
- disposable
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
- Высота эллипса в пикселях
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
- Общая высота для всех эллипсов
public virtual void DrawLine(IPen2D pen, Point pt1, Point pt2)
renderContextBase.DrawLine(pen, pt1, pt2)
Нарисуйте одну строку на IRenderSurface2D, используя указанный IPen2D. Примечание для более быстрой реализации в некоторых растеризаторах, используйте DrawLines
- pen
- Ручка
- pt1
- Начало строки в пикселях
- pt2
- Конец строки в пикселях
public virtual void DrawLines(IPen2D pen, IEnumerable<Point> points)
renderContextBase.DrawLines(pen, points)
Нарисуйте многоточечную линию на IRenderSurface2D, используя указанный IPen2D
- pen
- Ручка
- points
- Точки.
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
- Если же ось вывернута, то ось перевернута.
public virtual void DrawQuad(IPen2D pen, Point pt1, Point pt2)
renderContextBase.DrawQuad(pen, pt1, pt2)
Нарисуйте Quad на IRenderSurface2D, используя указанный IPen2D
- pen
- Ручка
- pt1
- pt2
public abstract void DrawSprite(ISprite2D srcSprite, Rect srcRect, Point destPoint)
renderContextBase.DrawSprite(srcSprite, srcRect, destPoint)
Отображает исходное изображение на IRenderSurface2D
- srcSprite
- Источник спрайт для рендеринга
- srcRect
- Прямоугольник источника
- destPoint
- Пункт назначения, который будет верхне-левой координатой спрайта после заблевания
public abstract void DrawSprites(ISprite2D sprite2D, Rect srcRect, IEnumerable<Point> points)
renderContextBase.DrawSprites(sprite2D, srcRect, points)
Пакетный рисунок исходного спрайта на IRenderSurface2D
- sprite2D
- Спрайт, чтобы сделать
- srcRect
- Прямоугольник источника
- points
- Точки для рисования спрайтов в
public abstract void DrawSprites(ISprite2D sprite2D, IEnumerable<Rect> dstRects)
renderContextBase.DrawSprites(sprite2D, dstRects)
Пакетный рисунок исходного спрайта на IRenderSurface2D
- sprite2D
- Спрайт, чтобы сделать
- dstRects
- Прямоугольники назначения для рисования спрайтов в
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
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)
Рисуем текст относительно базовой точки
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
- Угол, под которым вращается кисть
public virtual void FillPolygon(IBrush2D brush, IEnumerable<Point> points)
renderContextBase.FillPolygon(brush, points)
Заполняет многоугольник на IRenderSurface2D с помощью спецификации IBrush2D
- brush
- кисть
- points
- Список точек, определяющих замкнутый многоугольник, где X,Y координаты в направлении по часовой стрелке
public abstract void FillRectangle(IBrush2D brush, Point pt1, Point pt2, double gradientRotationAngle)
renderContextBase.FillRectangle(brush, pt1, pt2, gradientRotationAngle)
Заполняет прямоугольник на IRenderSurface2D с помощью указанного IBrush2D
- brush
- кисть
- pt1
- pt2
- gradientRotationAngle
- Угол, под которым вращается кисть
protected bool IsInBounds(Point pt)
result = renderContextBase.IsInBounds(pt)
Возвращается истинно, если точка находится внутри точки обзора.
public virtual void SetPrimitvesCachingEnabled(bool bEnabled)
renderContextBase.SetPrimitvesCachingEnabled(bEnabled)
Оптимизация включения / отключения примитов (только рендер Direct3D)