Apricot.Balloon.CreateRoundedRectangleGeometry C# (CSharp) Method

CreateRoundedRectangleGeometry() private method

private CreateRoundedRectangleGeometry ( Rect rect, int radiusX, int radiusY ) : System.Windows.Media.Geometry
rect System.Windows.Rect
radiusX int
radiusY int
return System.Windows.Media.Geometry
        private Geometry CreateRoundedRectangleGeometry(Rect rect, int radiusX, int radiusY)
        {
            StreamGeometry streamGeometry = new StreamGeometry();

            streamGeometry.FillRule = FillRule.Nonzero;

            using (StreamGeometryContext streamGeometryContext = streamGeometry.Open())
            {
                streamGeometryContext.BeginFigure(new Point(rect.X, rect.Y + radiusY), true, true);
                streamGeometryContext.QuadraticBezierTo(rect.Location, new Point(rect.X + radiusX, rect.Y), true, false);
                streamGeometryContext.LineTo(new Point(rect.X + rect.Width - radiusX, rect.Y), true, false);
                streamGeometryContext.QuadraticBezierTo(new Point(rect.X + rect.Width, rect.Y), new Point(rect.X + rect.Width, rect.Y + radiusY), true, false);
                streamGeometryContext.LineTo(new Point(rect.X + rect.Width, rect.Y + rect.Height - radiusY), true, false);
                streamGeometryContext.QuadraticBezierTo(new Point(rect.X + rect.Width, rect.Y + rect.Height), new Point(rect.X + rect.Width - radiusX, rect.Y + rect.Height), true, false);
                streamGeometryContext.LineTo(new Point(rect.X + radiusX, rect.Y + rect.Height), true, false);
                streamGeometryContext.QuadraticBezierTo(new Point(rect.X, rect.Y + rect.Height), new Point(rect.X, rect.Y + rect.Height - radiusY), true, false);
            }

            return streamGeometry;
        }