Esempio n. 1
0
        /// <summary>
        /// Snaps a stroke thickness to device pixels if required by the edge rendering mode.
        /// </summary>
        /// <param name="strokeThickness">The stroke thickness.</param>
        /// <param name="edgeRenderingMode">The edge rendering mode.</param>
        /// <returns>The processed stroke thickness.</returns>
        private double GetActualStrokeThickness(double strokeThickness, EdgeRenderingMode edgeRenderingMode)
        {
            switch (edgeRenderingMode)
            {
            case EdgeRenderingMode.PreferSharpness:
                return(PixelLayout.SnapStrokeThickness(strokeThickness, this.DpiScale));

            default:
                return(strokeThickness);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Snaps a rectangle to device pixels if required by the edge rendering mode.
        /// </summary>
        /// <param name="rect">The rectangle.</param>
        /// <param name="strokeThickness">The stroke thickness.</param>
        /// <param name="edgeRenderingMode">The edge rendering mode.</param>
        /// <returns>The processed rectangle.</returns>
        private Rect GetActualRect(OxyRect rect, double strokeThickness, EdgeRenderingMode edgeRenderingMode)
        {
            switch (edgeRenderingMode)
            {
            case EdgeRenderingMode.PreferGeometricAccuracy:
            case EdgeRenderingMode.PreferSpeed:
                return(ToRect(rect));

            default:
                return(PixelLayout.Snap(ToRect(rect), strokeThickness, this.VisualOffset, this.DpiScale));
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Snaps points to pixels if required by the edge rendering mode.
        /// </summary>
        /// <param name="points">The points.</param>
        /// <param name="strokeThickness">The stroke thickness.</param>
        /// <param name="edgeRenderingMode">The edge rendering mode.</param>
        /// <returns>The processed points.</returns>
        private IEnumerable <Point> GetActualPoints(IList <ScreenPoint> points, double strokeThickness, EdgeRenderingMode edgeRenderingMode)
        {
            switch (edgeRenderingMode)
            {
            case EdgeRenderingMode.Adaptive when RenderContextBase.IsStraightLine(points):
            case EdgeRenderingMode.Automatic when RenderContextBase.IsStraightLine(points):
            case EdgeRenderingMode.PreferSharpness:
                return(points.Select(p => PixelLayout.Snap(p.X, p.Y, strokeThickness, this.VisualOffset, this.DpiScale)));

            default:
                return(points.Select(p => new Point(p.X, p.Y)));
            }
        }