diff --git a/src/Perspex.SceneGraph/Media/EllipseGeometry.cs b/src/Perspex.SceneGraph/Media/EllipseGeometry.cs
index 3d6ae38909..71162d25e1 100644
--- a/src/Perspex.SceneGraph/Media/EllipseGeometry.cs
+++ b/src/Perspex.SceneGraph/Media/EllipseGeometry.cs
@@ -49,9 +49,6 @@ namespace Perspex.Media
PlatformImpl = impl;
}
- ///
- public override Rect Bounds => PlatformImpl.Bounds;
-
///
public override Geometry Clone()
{
diff --git a/src/Perspex.SceneGraph/Media/Geometry.cs b/src/Perspex.SceneGraph/Media/Geometry.cs
index dcfcd9aefe..806d5321a5 100644
--- a/src/Perspex.SceneGraph/Media/Geometry.cs
+++ b/src/Perspex.SceneGraph/Media/Geometry.cs
@@ -31,10 +31,7 @@ namespace Perspex.Media
///
/// Gets the geometry's bounding rectangle.
///
- public abstract Rect Bounds
- {
- get;
- }
+ public Rect Bounds => PlatformImpl.Bounds;
///
/// Gets the platform-specific implementation of the geometry.
diff --git a/src/Perspex.SceneGraph/Media/LineGeometry.cs b/src/Perspex.SceneGraph/Media/LineGeometry.cs
index d9f24422b1..78ad118604 100644
--- a/src/Perspex.SceneGraph/Media/LineGeometry.cs
+++ b/src/Perspex.SceneGraph/Media/LineGeometry.cs
@@ -35,37 +35,6 @@ namespace Perspex.Media
PlatformImpl = impl;
}
- ///
- public override Rect Bounds
- {
- get
- {
- double xMin, yMin, xMax, yMax;
- if (_startPoint.X <= _endPoint.X)
- {
- xMin = _startPoint.X;
- xMax = _endPoint.X;
- }
- else
- {
- xMin = _endPoint.X;
- xMax = _startPoint.X;
- }
- if (_startPoint.Y <= _endPoint.Y)
- {
- yMin = _startPoint.Y;
- yMax = _endPoint.Y;
- }
- else
- {
- yMin = _endPoint.Y;
- yMax = _startPoint.Y;
- }
-
- return new Rect(xMin, yMin, xMax - xMin, yMax - yMin);
- }
- }
-
///
public override Geometry Clone()
{
diff --git a/src/Perspex.SceneGraph/Media/PolylineGeometry.cs b/src/Perspex.SceneGraph/Media/PolylineGeometry.cs
index 39970d5e22..ec1ea1d412 100644
--- a/src/Perspex.SceneGraph/Media/PolylineGeometry.cs
+++ b/src/Perspex.SceneGraph/Media/PolylineGeometry.cs
@@ -41,38 +41,6 @@ namespace Perspex.Media
PlatformImpl = impl;
}
- ///
- public override Rect Bounds
- {
- get
- {
- double xMin = double.MaxValue, yMin = double.MaxValue;
- double xMax = double.MinValue, yMax = double.MinValue;
- foreach (var point in _points)
- {
- if (point.X < xMin)
- {
- xMin = point.X;
- }
- else if (point.X > xMax)
- {
- xMax = point.X;
- }
-
- if (point.Y < yMin)
- {
- yMin = point.Y;
- }
- else if (point.Y > yMax)
- {
- yMax = point.Y;
- }
- }
-
- return new Rect(xMin, yMin, xMax - xMin, yMax - yMin);
- }
- }
-
///
public override Geometry Clone()
{
diff --git a/src/Perspex.SceneGraph/Media/RectangleGeometry.cs b/src/Perspex.SceneGraph/Media/RectangleGeometry.cs
index 190d467127..d225c47e97 100644
--- a/src/Perspex.SceneGraph/Media/RectangleGeometry.cs
+++ b/src/Perspex.SceneGraph/Media/RectangleGeometry.cs
@@ -31,9 +31,6 @@ namespace Perspex.Media
PlatformImpl = impl;
}
- ///
- public override Rect Bounds => PlatformImpl.Bounds;
-
///
public override Geometry Clone()
{
diff --git a/src/Perspex.SceneGraph/Media/StreamGeometry.cs b/src/Perspex.SceneGraph/Media/StreamGeometry.cs
index 4d0b353f5d..8cac433476 100644
--- a/src/Perspex.SceneGraph/Media/StreamGeometry.cs
+++ b/src/Perspex.SceneGraph/Media/StreamGeometry.cs
@@ -28,9 +28,6 @@ namespace Perspex.Media
PlatformImpl = impl;
}
- ///
- public override Rect Bounds => PlatformImpl.Bounds;
-
///
/// Creates a from a string.
///
diff --git a/src/Windows/Perspex.Direct2D1/Media/StreamGeometryImpl.cs b/src/Windows/Perspex.Direct2D1/Media/StreamGeometryImpl.cs
index 0b91d561b0..f9f790db56 100644
--- a/src/Windows/Perspex.Direct2D1/Media/StreamGeometryImpl.cs
+++ b/src/Windows/Perspex.Direct2D1/Media/StreamGeometryImpl.cs
@@ -34,7 +34,7 @@ namespace Perspex.Direct2D1.Media
}
///
- public override Rect Bounds => _path.GetBounds().ToPerspex();
+ public override Rect Bounds => _path.GetWidenedBounds(0).ToPerspex();
///
public override D2DGeometry DefiningGeometry => _path;