RenderContextBase
Definiert die Basisklasse für IRenderContext2D @ Implementatoren, die das Zeichnen, Blitten und Erstellen von Stiften und Pinseln auf dem RenderSurfaceBase ermöglicht
Implementiert: IRenderContext2D, IDisposable
Eigenschaften
public abstract RenderOperationLayers Layers { get; }
value = renderContextBase.Layers
Erhaltet eine Sammlung von RenderOperationLayer Ebenen, mit denen Rendering-Operationen in eine geschichtete Warteschlange für die spätere Ausführung in der Reihenfolge (und korrekte Z-Ordnung) gepostet werden können.
public abstract Size ViewportSize { get; }
value = renderContextBase.ViewportSize
Bestimmt die Größe des aktuellen Viewports für diese Renderoperation
Methoden
public abstract IPathDrawingContext BeginLine(IPen2D pen, double startX, double startY)
result = renderContextBase.BeginLine(pen, startX, startY)
Beginnt ein Polyline-Segment und gibt die IPathDrawingContext zurück. Dies ist der schnellste Weg, um Linien zu zeichnen und einfach ein Proxy zu Point} -Methode.
- pen
- Der Stift für das Liniensegment
- startX
- Start-X-Koordinate (Pixel coord)
- startY
- Die Start-Y-Koordinate (Pixel coord)
Rückgabe: Die IPathDrawingContext, um die Linie fortzusetzen
public abstract IPathDrawingContext BeginPolygon(IBrush2D brush, double startX, double startY, double gradientRotationAngle)
result = renderContextBase.BeginPolygon(brush, startX, startY, gradientRotationAngle)
Beginnt ein ausgefülltes Polygon-Segment und gibt die IPathDrawingContext zurück. Dies ist der schnellste Weg, um Polygon und einfach einen Proxy zu Double zu zeichnen.
- brush
- Die Bürste für die Polygonfüllung
- startX
- Start-X-Koordinate (Pixel coord)
- startY
- Die Start-Y-Koordinate (Pixel coord)
- gradientRotationAngle
- Der Winkel, um den die Bürste gedreht wird
Rückgabe: Das IPathDrawingContext, um das Polygon fortzusetzen
protected IEnumerable<Point> ClipArea(IEnumerable<Tuple<Point, Point>> lines)
result = renderContextBase.ClipArea(lines)
Intern verwendet, um den Bereich eines StackedMountainSeries zum Viewport zu sperren
- lines
- Sammlung von Linien, die Grenzen eines Polygonsegments darstellen
protected IEnumerable<Point> ClipArea(IEnumerable<Point> points, int xExtension, int yExtension)
result = renderContextBase.ClipArea(points, xExtension, yExtension)
Intern verwendet, um ein Polygon oder Liniensegment in den Viewport zu klemmen
internal static bool ClipLine(Point pt1, Point pt2, Size viewportSize)
result = RenderContextBase.ClipLine(pt1, pt2, viewportSize)
Rückgabe: Falsch, wenn sich die Linie außerhalb des sichtbaren Bereichs befindet
protected double ClipZeroLineForArea(double zeroLine, bool isVerticalChart)
result = renderContextBase.ClipZeroLineForArea(zeroLine, isVerticalChart)
Intern verwendet: Clips die Nulllinie (e.g. in Bergfüllungen) zum Viewport
public abstract IBrush2D CreateBrush(Color color, double opacity, bool? alphaBlend)
result = renderContextBase.CreateBrush(color, opacity, alphaBlend)
Erstellt einen IBrush2D, der für den aktuellen Renderpass gültig ist.
- color
- Die Farbe des Pinsels, unterstützt die Transparenz
- opacity
- Die Trübung des Pinsels
- alphaBlend
- Wenn zutreffend, verwenden Sie Alphablending, wenn Sie schattieren.
Rückgabe: Die IBrush2D Instanz
public abstract IBrush2D CreateBrush(Brush brush, double opacity, TextureMappingMode textureMappingMode)
result = renderContextBase.CreateBrush(brush, opacity, textureMappingMode)
Erstellt einen IBrush2D aus WPF Brush, der für den aktuellen Renderpass gültig ist.
- brush
- Die WPF-Bürste, die als Quelle verwendet werden soll, e.g. Dies kann eine , oder es kann eine . Beachten Sie, dass Vollfarben Transparenz unterstützen und schneller sind als Gradientenbürsten
- opacity
- Die Trübung des Pinsels
- textureMappingMode
Rückgabe: Die IBrush2D Instanz
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)
Erstellt eine IPen2D, die für den aktuellen Renderpass gültig ist.
- color
- Die Farbe des Stiftes, unterstützt die Transparenz
- antiAliasing
- Wenn zutreffend, verwenden Sie Antialiasing
- strokeThickness
- Die Strichdicke, Default = 1,0
- opacity
- Die Opecity des Pen
- strokeDashArray
- strokeEndLineCap
Rückgabe: Die IPen2D-Instanz
public abstract ISprite2D CreateSprite(FrameworkElement fe)
result = renderContextBase.CreateSprite(fe)
Erstellt einen Sprite aus FrameworkElement durch Rendern in Bitmap. Dies kann in der Point-Methode verwendet werden, um wiederholt auf den Bildschirm zu ziehen
- fe
public abstract void Dispose()
renderContextBase.Dispose()
Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freigeben oder Zurücksetzen nicht verwalteter Ressourcen verbunden sind.
public abstract void DisposeResourceAfterDraw(IDisposable disposable)
renderContextBase.DisposeResourceAfterDraw(disposable)
Rufen Sie diese Methode auf, indem Sie die IDisposable-Instanz nach Abschluss des Render-Passes übergeben, intern von Ultrachart aufgerufen, um Direct2D- und Direct3D-Pinsel und Texturen zu entsorgen.
- disposable
public abstract void DrawEllipse(IPen2D strokePen, IBrush2D fillBrush, Point center, double width, double height)
renderContextBase.DrawEllipse(strokePen, fillBrush, center, width, height)
Zeichnet eine Ellipse auf IRenderSurface2D mit dem angegebenen Umriss IPen2D und füllen Sie IBrush2D
- strokePen
- Der Hubfederhalter
- fillBrush
- Die Füllbürste
- center
- Die Mitte der Ellipse in Pixeln
- width
- Die Breite der Ellipse in Pixeln
- height
- Die Höhe der Ellipse in Pixeln
public abstract void DrawEllipses(IPen2D strokePen, IBrush2D fillBrush, IEnumerable<Point> centres, double width, double height)
renderContextBase.DrawEllipses(strokePen, fillBrush, centres, width, height)
Zeichnet 0..N Ellipsen an den Punkten mit der gleichen Breite, Höhe, Feder und Bürste
- strokePen
- fillBrush
- centres
- Die Punkte, um Ellipsen zu zeichnen
- width
- Die gemeinsame Breite für alle Ellipsen
- height
- Die gemeinsame Höhe für alle Ellipsen
public virtual void DrawLine(IPen2D pen, Point pt1, Point pt2)
renderContextBase.DrawLine(pen, pt1, pt2)
Zeichnet eine einzelne Zeile auf IRenderSurface2D mit der angegebenen IPen2D. Hinweis für eine schnellere Implementierung in einigen Rasterizern, verwenden Sie DrawLines @
- pen
- Die Feder
- pt1
- Der Anfang der Zeile in Pixeln
- pt2
- Das Ende der Zeile in Pixeln
public virtual void DrawLines(IPen2D pen, IEnumerable<Point> points)
renderContextBase.DrawLines(pen, points)
Zeichnet eine Mehrpunktlinie auf IRenderSurface2D mit der angegebenen IPen2D
- pen
- Die Feder
- points
- Die Punkte.
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)
Zeichnet vertikale Scan-Linie für Heatmap von unten nach oben, von yStart bis yEnd @
- x
- Bildschirm X koordiniert, wo Pixel zu zeichnen
- yStartBottom
- Bildschirm-Y-Koordinate der vertikalen Abtastzeile unten: kann außerhalb des sichtbaren Bereichs liegen, in diesem Fall sind nicht alle Pixel in der Liste gerendert
- yEndTop
- Bildschirm-Y-Koordinate der vertikalen Scan-Linie oben. Kann außerhalb des sichtbaren Bereichs liegen, in diesem Fall sind nicht alle Pixel in der Liste gerendert
- pixelColorsArgb
- Die Farben, die auf die vertikale Scanline angewendet werden sollen
- opacity
- Die Deckkraft der vertikalen Skalierung, von 0,0 bis 1,0
- yAxisIsFlipped
- Wenn auf true gesetzt, wird die y-Achse umgedreht.
public virtual void DrawQuad(IPen2D pen, Point pt1, Point pt2)
renderContextBase.DrawQuad(pen, pt1, pt2)
Zeichnet ein Quad auf IRenderSurface2D mit der angegebenen IPen2D
- pen
- Der Stift
- pt1
- pt2
public abstract void DrawSprite(ISprite2D srcSprite, Rect srcRect, Point destPoint)
renderContextBase.DrawSprite(srcSprite, srcRect, destPoint)
Blits das Quellbild auf die IRenderSurface2D
- srcSprite
- Die Quelle sprite zum Rendern
- srcRect
- Das Quellrechteck
- destPoint
- Der Zielpunkt, der die obere linke Koordinate des Sprite nach dem Blitting sein wird
public abstract void DrawSprites(ISprite2D sprite2D, Rect srcRect, IEnumerable<Point> points)
renderContextBase.DrawSprites(sprite2D, srcRect, points)
Batch ziehen Sie den Quell-Sprite auf IRenderSurface2D @
- sprite2D
- Der Sprite zum Rendern
- srcRect
- Das Quellrechteck
- points
- Die Punkte, um Sprites zu zeichnen
public abstract void DrawSprites(ISprite2D sprite2D, IEnumerable<Rect> dstRects)
renderContextBase.DrawSprites(sprite2D, dstRects)
Batch ziehen Sie den Quell-Sprite auf IRenderSurface2D @
- sprite2D
- Der Sprite zum Rendern
- dstRects
- Die Zielrechtecke, um Sprites anzuziehen
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)
Zeichnet Text, wenn er nicht nach draußen geht
- 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)
Zeichnet Text relativ zum Basispunkt
public abstract void FillArea(IBrush2D brush, IEnumerable<Tuple<Point, Point>> lines, bool isVerticalChart, double gradientRotationAngle)
renderContextBase.FillArea(brush, lines, isVerticalChart, gradientRotationAngle)
Füllt einen Bereich, der durch zwei Liniensegmente begrenzt ist, e.g. wie in einem gestapelten Bergdiagramm, unter Verwendung des angegebenen IBrush2D
- brush
- Der Pinsel
- lines
- Die Liste der Linien, die Polygonsegmente darstellen
- isVerticalChart
- Wert, gibt an, ob der Chart vertikal ist
- gradientRotationAngle
- Der Winkel, um den die Bürste gedreht wird
public virtual void FillPolygon(IBrush2D brush, IEnumerable<Point> points)
renderContextBase.FillPolygon(brush, points)
Füllt ein Polygon auf dem IRenderSurface2D mit dem Spezifie IBrush2D
- brush
- Der Pinsel
- points
- Die Liste der Punkte, die das geschlossene Polygon definieren, wobei X,Y im Uhrzeigersinn koordiniert
public abstract void FillRectangle(IBrush2D brush, Point pt1, Point pt2, double gradientRotationAngle)
renderContextBase.FillRectangle(brush, pt1, pt2, gradientRotationAngle)
Füllt ein Rechteck auf dem IRenderSurface2D mit dem angegebenen IBrush2D
- brush
- Der Pinsel
- pt1
- pt2
- gradientRotationAngle
- Der Winkel, um den die Bürste gedreht wird
protected bool IsInBounds(Point pt)
result = renderContextBase.IsInBounds(pt)
Gibt true zurück, wenn sich der Punkt im Viewport befindet
public virtual void SetPrimitvesCachingEnabled(bool bEnabled)
renderContextBase.SetPrimitvesCachingEnabled(bEnabled)
ermöglicht/deaktiviert primitves chaching Optimierung (nur Direct3D-Renderer)