IRenderContext2D

StockSharp.Xaml.Charting.Rendering.Common

Define a interface para um 2D RenderContext, permitindo desenhar, blitting e criação de canetas e pincéis no RenderSurfaceBase

Implementa: IDisposable

Propriedades

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

Obtém uma coleção de RenderOperationLayers, que permitem que operações de renderização sejam postadas em uma fila em camadas para execução posterior em ordem (e correta ordem Z).

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

Obtém o tamanho atual da viewport.

Métodos

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

Inicia um segmento de linha poli, devolvendo o método IPathDrawingContext. Esta é a maneira mais rápida de desenhar linhas e simplesmente um proxy para Ponto}).

pen
A caneta para o segmento de linha
startX
A coordenada inicial do X (coord de pixel)
startY
A coordenada inicial Y (pixel coord)

Retorna: A IPathDrawingContext para continuar a linha

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

Inicia um segmento de polígono preenchido, devolvendo o método IPathDrawingContext. Esta é a maneira mais rápida de desenhar polígono e simplesmente um proxy para o Double).

brush
O pincel para o preenchimento do polígono
startX
A coordenada inicial do X (coord de pixel)
startY
A coordenada inicial Y (pixel coord)
gradientRotationAngle
O ângulo pelo qual o pincel é rodado

Retorna: O IPathDrawingContextpara continuar o polígono

Clear
public void Clear()
iRenderContext2D.Clear()

Limpa o IRenderSurface2D

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

Cria um IBrush2D válido para o passe de renderização atual. Use isto para desenhar retângulos, polígonos e áreas sombreadas

color
A cor do pincel, suporta transparência
opacity
A opacidade da escova
alphaBlend
Se for verdadeiro, use a combinação alfa ao sombrear. Se for nulo, detetete automaticamente

Retorna: A instância IBrush2D

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

Cria um IBrush2D a partir do Pincel WPF válido para o passe de renderização atual. Use isto para desenhar retângulos, polígonos e áreas sombreadas

brush
O Pincel WPF para usar como fonte, e.g. isto pode ser um , ou pode ser um . Note que cores sólidas suportam transparência e são mais rápidas do que escovas gradiente
opacity
A opacidade da escova
textureMappingMode
Define uma TextureMappingMode, e.g. pincéis partilham uma textura por viewport ou uma nova textura por desenho primitivo

Retorna: A instância 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)

Cria um IPen2D válido para o passe de renderização atual. Use isto para desenhar contornos, quads e linhas

color
A cor da caneta, suporta a transparência
antiAliasing
Se for verdadeiro, utilize antialiasing
strokeThickness
A braçada, padrão=1.0
opacity
A opecidade da caneta
strokeDashArray
strokeEndLineCap

Retorna: A instância IPen2D

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

Cria uma imagem a partir de FrameworkElement, renderizando para bitmap. Isto pode ser usado no método Ponto) para desenhar para o ecrã repetidamente

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

tamanho máximo do dígito em pixels

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

Chame este método, passando em instância IDisposable para eliminar após a passagem de renderização completa. Chamado internamente por Ultrachart para deposição preguiçosa de escovas e texturas Direct2D e Direct3D

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

Desenha uma Elipse na IRenderSurface2D usando o contorno especificado IPen2D e preenchendo IBrush2D

strokePen
A caneta de injecção
fillBrush
O pincel de preenchimento
center
O centro da elipse em pixels
width
A largura da elipse em pixels
height
A altura da elipse em pixels
DrawEllipses
public void DrawEllipses(IPen2D strokePen, IBrush2D fillBrush, IEnumerable<Point> centres, double width, double height)
iRenderContext2D.DrawEllipses(strokePen, fillBrush, centres, width, height)

Desenha 0..N Elipses nos pontos passados com a mesma largura, altura, caneta e pincel

strokePen
fillBrush
centres
Os pontos para desenhar elipses em
width
A largura comum para todas as elipses
height
A altura comum para todas as elipses
DrawLine
public void DrawLine(IPen2D pen, Point pt1, Point pt2)
iRenderContext2D.DrawLine(pen, pt1, pt2)

Desenha uma única linha na IRenderSurface2D usando o IPen2D especificado. Nota para uma implementação mais rápida em alguns rasterizadores, use DrawLines passando em um IEnumerável

pen
A caneta
pt1
O início da linha em pixels
pt2
O fim da linha em pixels
DrawLines
public void DrawLines(IPen2D pen, IEnumerable<Point> points)
iRenderContext2D.DrawLines(pen, points)

Desenha uma linha multipontos na IRenderSurface2D usando o IPen2D indicado

pen
A caneta
points
Os pontos

Retorna: O último ponto da linha de polimento desenhada

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)

Desenha a linha de procura vertical para a mapa de calor de baixo para cima, de yStart para yEnd

x
Tela X coordenar onde desenhar pixels
yStartBottom
Coordenação Y do ecrã da linha vertical de procura. Pode ser localizada em desnível da área visível, neste caso nem todos os pixels na lista são renderizados
yEndTop
Coordenação Y do topo da linha de digitalização vertical. Pode ser localizada em desnível da área visível, neste caso nem todos os pixels na lista são renderizados
pixelColorsArgb
A lista de cores dos pixels a desenhar
opacity
A opacidade da linha de 0.0 a 1.0
yAxisIsFlipped
se definido para true então o eixo y é virado.
DrawQuad
public void DrawQuad(IPen2D pen, Point pt1, Point pt2)
iRenderContext2D.DrawQuad(pen, pt1, pt2)

Desenha um Quad no IRenderSurface2D usando o IPen2D especificado

pen
A caneta
pt1
Ponto superior esquerdo no quad
pt2
Ponto inferior-direita no quad
DrawSprite
public void DrawSprite(ISprite2D srcSprite, Rect srcRect, Point destPoint)
iRenderContext2D.DrawSprite(srcSprite, srcRect, destPoint)

Blits a imagem de origem na IRenderSurface2D

srcSprite
A imagem de origem a renderizar
srcRect
O retângulo de origem
destPoint
O ponto de destino, que será a coordenada superior esquerda da imagem após blitting
DrawSprites
public void DrawSprites(ISprite2D sprite2D, IEnumerable<Rect> dstRects)
iRenderContext2D.DrawSprites(sprite2D, dstRects)

Desenho em lote da imagem de origem na IRenderSurface2D

sprite2D
A imagem a renderizar
dstRects
Os retângulos de destino para desenhar as imagens em
DrawSprites
public void DrawSprites(ISprite2D sprite2D, Rect srcRect, IEnumerable<Point> points)
iRenderContext2D.DrawSprites(sprite2D, srcRect, points)

Desenho em lote da imagem de origem na IRenderSurface2D

sprite2D
A imagem a renderizar
srcRect
O retângulo de origem
points
Os pontos para desenhar imagens em
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)

Desenha o texto se não for para fora

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)

Desenha o texto em relação ao ponto base

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

Preenche uma área definida como Pontos e Alturas, e.g. como num gráfico de montanha, usando a especificação IBrush2D

brush
O pincel
lines
isVerticalChart
Valor, indica se o gráfico é vertical
gradientRotationAngle
O ângulo pelo qual o pincel é rodado
FillPolygon
public void FillPolygon(IBrush2D brush, IEnumerable<Point> points)
iRenderContext2D.FillPolygon(brush, points)

Preenche um polígono no IRenderSurface2D usando a especificação IBrush2D

brush
O pincel
points
A lista de pontos que definem o polígono fechado, onde X, Y coordena no sentido horário
FillRectangle
public void FillRectangle(IBrush2D brush, Point pt1, Point pt2, double gradientRotationAngle)
iRenderContext2D.FillRectangle(brush, pt1, pt2, gradientRotationAngle)

Preenche um retângulo na IRenderSurface2D usando o IBrush2D especificado

brush
O pincel
pt2
O ponto superior esquerdo do retângulo
pt1
O ponto inferior direito do retângulo
gradientRotationAngle
O ângulo pelo qual o pincel é rodado, por omissão é zero
SetPrimitvesCachingEnabled
public void SetPrimitvesCachingEnabled(bool bEnabled)
iRenderContext2D.SetPrimitvesCachingEnabled(bEnabled)

permite/desativa primitves chaching optimization (apenas renderizador 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)

Calcular o espaço necessário para desenhar o texto