diff --git a/src/Avalonia.Base/Media/Geometry.cs b/src/Avalonia.Base/Media/Geometry.cs
index c31a6699c2..7d56140f22 100644
--- a/src/Avalonia.Base/Media/Geometry.cs
+++ b/src/Avalonia.Base/Media/Geometry.cs
@@ -30,7 +30,7 @@ namespace Avalonia.Media
///
/// Gets the geometry's bounding rectangle.
///
- public Rect Bounds => PlatformImpl?.Bounds ?? Rect.Empty;
+ public Rect Bounds => PlatformImpl?.Bounds ?? Rect.Default;
///
/// Gets the platform-specific implementation of the geometry.
@@ -84,7 +84,7 @@ namespace Avalonia.Media
///
/// The stroke thickness.
/// The bounding rectangle.
- public Rect GetRenderBounds(IPen pen) => PlatformImpl?.GetRenderBounds(pen) ?? Rect.Empty;
+ public Rect GetRenderBounds(IPen pen) => PlatformImpl?.GetRenderBounds(pen) ?? Rect.Default;
///
/// Indicates whether the geometry's fill contains the specified point.
diff --git a/src/Avalonia.Base/Media/GeometryDrawing.cs b/src/Avalonia.Base/Media/GeometryDrawing.cs
index 7df7d25954..e9cbcecabe 100644
--- a/src/Avalonia.Base/Media/GeometryDrawing.cs
+++ b/src/Avalonia.Base/Media/GeometryDrawing.cs
@@ -69,7 +69,7 @@ namespace Avalonia.Media
public override Rect GetBounds()
{
IPen pen = Pen ?? s_boundsPen;
- return Geometry?.GetRenderBounds(pen) ?? Rect.Empty;
+ return Geometry?.GetRenderBounds(pen) ?? Rect.Default;
}
}
}
diff --git a/src/Avalonia.Base/Media/GlyphRunDrawing.cs b/src/Avalonia.Base/Media/GlyphRunDrawing.cs
index 7e0d5c3c81..eab2d99387 100644
--- a/src/Avalonia.Base/Media/GlyphRunDrawing.cs
+++ b/src/Avalonia.Base/Media/GlyphRunDrawing.cs
@@ -32,7 +32,7 @@
public override Rect GetBounds()
{
- return GlyphRun != null ? new Rect(GlyphRun.Size) : Rect.Empty;
+ return GlyphRun != null ? new Rect(GlyphRun.Size) : Rect.Default;
}
}
}
diff --git a/src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs b/src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs
index 96f88d1f44..8f56e1d4c9 100644
--- a/src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs
+++ b/src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs
@@ -528,7 +528,7 @@ namespace Avalonia.Media.TextFormatting
var startX = Start;
double currentWidth = 0;
- var currentRect = Rect.Empty;
+ var currentRect = Rect.Default;
TextRunBounds lastRunBounds = default;
@@ -762,7 +762,7 @@ namespace Avalonia.Media.TextFormatting
var startX = WidthIncludingTrailingWhitespace;
double currentWidth = 0;
- var currentRect = Rect.Empty;
+ var currentRect = Rect.Default;
for (var index = TextRuns.Count - 1; index >= 0; index--)
{
diff --git a/src/Avalonia.Base/Rect.cs b/src/Avalonia.Base/Rect.cs
index 862e4caec1..50b776d14f 100644
--- a/src/Avalonia.Base/Rect.cs
+++ b/src/Avalonia.Base/Rect.cs
@@ -16,9 +16,13 @@ namespace Avalonia
}
///
- /// An empty rectangle.
+ /// A shared default instance representing an empty rectangle.
///
- public static readonly Rect Empty = default(Rect);
+ public static readonly Rect Default = default;
+
+ ///
+ [Obsolete("Use Default instead.")]
+ public static readonly Rect Empty = Default;
///
/// The X position.
@@ -394,7 +398,7 @@ namespace Avalonia
}
else
{
- return Empty;
+ return Default;
}
}
@@ -467,7 +471,7 @@ namespace Avalonia
double.IsNaN(rect.X) || double.IsNaN(rect.Y) ||
double.IsNaN(Height) || double.IsNaN(Width))
{
- return Rect.Empty;
+ return Rect.Default;
}
if (rect.Width < 0)
diff --git a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionDrawListVisual.cs b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionDrawListVisual.cs
index 6cbd2797f9..95ed8e27c1 100644
--- a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionDrawListVisual.cs
+++ b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionDrawListVisual.cs
@@ -37,7 +37,7 @@ internal class ServerCompositionDrawListVisual : ServerCompositionContainerVisua
{
if (_contentBounds == null)
{
- var rect = Rect.Empty;
+ var rect = Rect.Default;
if(_renderCommands!=null)
foreach (var cmd in _renderCommands)
rect = rect.Union(cmd.Item.Bounds);
diff --git a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs
index c9517d01f8..c378f4981a 100644
--- a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs
+++ b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs
@@ -160,7 +160,7 @@ namespace Avalonia.Rendering.Composition.Server
}
RenderedVisuals = 0;
- _dirtyRect = Rect.Empty;
+ _dirtyRect = Rect.Default;
}
}
diff --git a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual.cs b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual.cs
index 5e6dcab209..e6943211e4 100644
--- a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual.cs
+++ b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionVisual.cs
@@ -192,7 +192,7 @@ namespace Avalonia.Rendering.Composition.Server
void AddDirtyRect(Rect rc)
{
- if(rc == Rect.Empty)
+ if(rc == Rect.Default)
return;
Root?.AddDirtyRect(rc);
}
diff --git a/src/Avalonia.Base/Rendering/ImmediateRenderer.cs b/src/Avalonia.Base/Rendering/ImmediateRenderer.cs
index 9e1582ed43..98a224181c 100644
--- a/src/Avalonia.Base/Rendering/ImmediateRenderer.cs
+++ b/src/Avalonia.Base/Rendering/ImmediateRenderer.cs
@@ -127,7 +127,7 @@ namespace Avalonia.Rendering
///
public void AddDirty(Visual visual)
{
- if (visual.Bounds != Rect.Empty)
+ if (visual.Bounds != Rect.Default)
{
var m = visual.TransformToVisual(_root);
diff --git a/src/Avalonia.Base/Rendering/SceneGraph/BitmapBlendModeNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/BitmapBlendModeNode.cs
index 98e89f6549..6739e5b287 100644
--- a/src/Avalonia.Base/Rendering/SceneGraph/BitmapBlendModeNode.cs
+++ b/src/Avalonia.Base/Rendering/SceneGraph/BitmapBlendModeNode.cs
@@ -27,7 +27,7 @@ namespace Avalonia.Rendering.SceneGraph
}
///
- public Rect Bounds => Rect.Empty;
+ public Rect Bounds => Rect.Default;
///
/// Gets the BitmapBlend to be pushed or null if the operation represents a pop.
diff --git a/src/Avalonia.Base/Rendering/SceneGraph/ClipNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/ClipNode.cs
index 90430bed02..9de18c068c 100644
--- a/src/Avalonia.Base/Rendering/SceneGraph/ClipNode.cs
+++ b/src/Avalonia.Base/Rendering/SceneGraph/ClipNode.cs
@@ -40,7 +40,7 @@ namespace Avalonia.Rendering.SceneGraph
}
///
- public Rect Bounds => Rect.Empty;
+ public Rect Bounds => Rect.Default;
///
/// Gets the clip to be pushed or null if the operation represents a pop.
diff --git a/src/Avalonia.Base/Rendering/SceneGraph/GeometryClipNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/GeometryClipNode.cs
index 667b66420b..e8690ac6f8 100644
--- a/src/Avalonia.Base/Rendering/SceneGraph/GeometryClipNode.cs
+++ b/src/Avalonia.Base/Rendering/SceneGraph/GeometryClipNode.cs
@@ -28,7 +28,7 @@ namespace Avalonia.Rendering.SceneGraph
}
///
- public Rect Bounds => Rect.Empty;
+ public Rect Bounds => Rect.Default;
///
/// Gets the clip to be pushed or null if the operation represents a pop.
diff --git a/src/Avalonia.Base/Rendering/SceneGraph/OpacityMaskNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/OpacityMaskNode.cs
index 5fd200ddff..521fafe816 100644
--- a/src/Avalonia.Base/Rendering/SceneGraph/OpacityMaskNode.cs
+++ b/src/Avalonia.Base/Rendering/SceneGraph/OpacityMaskNode.cs
@@ -19,7 +19,7 @@ namespace Avalonia.Rendering.SceneGraph
/// The bounds of the mask.
/// Auxiliary data required to draw the brush.
public OpacityMaskNode(IBrush mask, Rect bounds, IDisposable? aux = null)
- : base(Rect.Empty, Matrix.Identity, aux)
+ : base(Rect.Default, Matrix.Identity, aux)
{
Mask = mask.ToImmutable();
MaskBounds = bounds;
@@ -30,7 +30,7 @@ namespace Avalonia.Rendering.SceneGraph
/// opacity mask pop.
///
public OpacityMaskNode()
- : base(Rect.Empty, Matrix.Identity, null)
+ : base(Rect.Default, Matrix.Identity, null)
{
}
diff --git a/src/Avalonia.Base/Rendering/SceneGraph/OpacityNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/OpacityNode.cs
index 8fc630588f..af8b710191 100644
--- a/src/Avalonia.Base/Rendering/SceneGraph/OpacityNode.cs
+++ b/src/Avalonia.Base/Rendering/SceneGraph/OpacityNode.cs
@@ -26,7 +26,7 @@ namespace Avalonia.Rendering.SceneGraph
}
///
- public Rect Bounds => Rect.Empty;
+ public Rect Bounds => Rect.Default;
///
/// Gets the opacity to be pushed or null if the operation represents a pop.
diff --git a/src/Avalonia.Base/Rendering/SceneGraph/SceneBuilder.cs b/src/Avalonia.Base/Rendering/SceneGraph/SceneBuilder.cs
index d54bd3fad8..863662c93f 100644
--- a/src/Avalonia.Base/Rendering/SceneGraph/SceneBuilder.cs
+++ b/src/Avalonia.Base/Rendering/SceneGraph/SceneBuilder.cs
@@ -331,8 +331,8 @@ namespace Avalonia.Rendering.SceneGraph
scene.Size = newSize;
- Rect horizontalDirtyRect = Rect.Empty;
- Rect verticalDirtyRect = Rect.Empty;
+ Rect horizontalDirtyRect = Rect.Default;
+ Rect verticalDirtyRect = Rect.Default;
if (newSize.Width > oldSize.Width)
{
@@ -429,7 +429,7 @@ namespace Avalonia.Rendering.SceneGraph
else
{
layer.OpacityMask = null;
- layer.OpacityMaskRect = Rect.Empty;
+ layer.OpacityMaskRect = Rect.Default;
}
layer.GeometryClip = node.HasAncestorGeometryClip ?
diff --git a/src/Avalonia.Controls.DataGrid/Primitives/DataGridCellsPresenter.cs b/src/Avalonia.Controls.DataGrid/Primitives/DataGridCellsPresenter.cs
index 38d559a031..0e552af2ba 100644
--- a/src/Avalonia.Controls.DataGrid/Primitives/DataGridCellsPresenter.cs
+++ b/src/Avalonia.Controls.DataGrid/Primitives/DataGridCellsPresenter.cs
@@ -161,7 +161,7 @@ namespace Avalonia.Controls.Primitives
{
// Clip
RectangleGeometry rg = new RectangleGeometry();
- rg.Rect = Rect.Empty;
+ rg.Rect = Rect.Default;
cell.Clip = rg;
}
}
diff --git a/src/Avalonia.Controls/Flyouts/FlyoutBase.cs b/src/Avalonia.Controls/Flyouts/FlyoutBase.cs
index 3ff248f0be..2fad480bba 100644
--- a/src/Avalonia.Controls/Flyouts/FlyoutBase.cs
+++ b/src/Avalonia.Controls/Flyouts/FlyoutBase.cs
@@ -457,7 +457,7 @@ namespace Avalonia.Controls.Primitives
PopupPositioning.PopupPositionerConstraintAdjustment.SlideY;
}
- var trgtBnds = Target?.Bounds ?? Rect.Empty;
+ var trgtBnds = Target?.Bounds ?? Rect.Default;
switch (Placement)
{
diff --git a/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs b/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs
index 7abc0ca131..c39f37aded 100644
--- a/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs
+++ b/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs
@@ -212,7 +212,7 @@ namespace Avalonia.Headless
class HeadlessStreamingGeometryStub : HeadlessGeometryStub, IStreamGeometryImpl
{
- public HeadlessStreamingGeometryStub() : base(Rect.Empty)
+ public HeadlessStreamingGeometryStub() : base(Rect.Default)
{
}
diff --git a/src/Browser/Avalonia.Browser/WebEmbeddableControlRoot.cs b/src/Browser/Avalonia.Browser/WebEmbeddableControlRoot.cs
index e389ee98ea..8659b8f0d9 100644
--- a/src/Browser/Avalonia.Browser/WebEmbeddableControlRoot.cs
+++ b/src/Browser/Avalonia.Browser/WebEmbeddableControlRoot.cs
@@ -18,7 +18,7 @@ namespace Avalonia.Browser
_onFirstRender = onFirstRender;
}
- public Rect Bounds => Rect.Empty;
+ public Rect Bounds => Rect.Default;
public bool HasRendered => _hasRendered;
diff --git a/src/Skia/Avalonia.Skia/GeometryImpl.cs b/src/Skia/Avalonia.Skia/GeometryImpl.cs
index 4037cc4a35..6ff6354b4f 100644
--- a/src/Skia/Avalonia.Skia/GeometryImpl.cs
+++ b/src/Skia/Avalonia.Skia/GeometryImpl.cs
@@ -244,7 +244,7 @@ namespace Avalonia.Skia
public void Invalidate()
{
CachedStrokePath?.Dispose();
- CachedGeometryRenderBounds = Rect.Empty;
+ CachedGeometryRenderBounds = Rect.Default;
_cachedStrokeWidth = default(float);
}
}
diff --git a/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs b/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs
index 86450690e6..6e0d42b478 100644
--- a/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs
+++ b/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs
@@ -34,7 +34,7 @@ namespace Avalonia.Skia
///
/// Initializes a new instance of the class.
///
- public StreamGeometryImpl() : this(CreateEmptyPath(), Rect.Empty)
+ public StreamGeometryImpl() : this(CreateEmptyPath(), Rect.Default)
{
}
diff --git a/tests/Avalonia.Base.UnitTests/RectTests.cs b/tests/Avalonia.Base.UnitTests/RectTests.cs
index 95a438b287..15265f1fcd 100644
--- a/tests/Avalonia.Base.UnitTests/RectTests.cs
+++ b/tests/Avalonia.Base.UnitTests/RectTests.cs
@@ -52,7 +52,7 @@ namespace Avalonia.Base.UnitTests
double.PositiveInfinity, double.PositiveInfinity)
.Normalize();
- Assert.Equal(Rect.Empty, result);
+ Assert.Equal(Rect.Default, result);
}
}
}
diff --git a/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs
index 2cf42d9604..ce4fff77e9 100644
--- a/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs
@@ -403,7 +403,7 @@ namespace Avalonia.Base.UnitTests.Rendering
root.Measure(Size.Infinity);
root.Arrange(new Rect(container.DesiredSize));
- root.Renderer.Paint(Rect.Empty);
+ root.Renderer.Paint(Rect.Default);
var result = root.Renderer.HitTest(new Point(50, 150), root, null).First();
Assert.Equal(item1, result);
@@ -419,7 +419,7 @@ namespace Avalonia.Base.UnitTests.Rendering
container.InvalidateArrange();
container.Arrange(new Rect(container.DesiredSize));
- root.Renderer.Paint(Rect.Empty);
+ root.Renderer.Paint(Rect.Default);
result = root.Renderer.HitTest(new Point(50, 150), root, null).First();
Assert.Equal(item2, result);
diff --git a/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs
index 2fac968206..4a347762e1 100644
--- a/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs
@@ -13,9 +13,9 @@ namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
[Fact]
public void Empty_Bounds_Remain_Empty()
{
- var target = new TestDrawOperation(Rect.Empty, Matrix.Identity, null);
+ var target = new TestDrawOperation(Rect.Default, Matrix.Identity, null);
- Assert.Equal(Rect.Empty, target.Bounds);
+ Assert.Equal(Rect.Default, target.Bounds);
}
[Theory]
diff --git a/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs b/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs
index 08fd777ac6..d40f4f8cd0 100644
--- a/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs
+++ b/tests/Avalonia.Controls.UnitTests/Presenters/ItemsPresenterTests_Virtualization_Simple.cs
@@ -570,7 +570,7 @@ namespace Avalonia.Controls.UnitTests.Presenters
var items = (IList)target.Items;
target.ApplyTemplate();
target.Measure(Size.Empty);
- target.Arrange(Rect.Empty);
+ target.Arrange(Rect.Default);
// Check for issue #591: this should not throw.
target.ScrollIntoView(0);
diff --git a/tests/Avalonia.Controls.UnitTests/Shapes/RectangleTests.cs b/tests/Avalonia.Controls.UnitTests/Shapes/RectangleTests.cs
index 8d8ce10d4c..6a6d3975a7 100644
--- a/tests/Avalonia.Controls.UnitTests/Shapes/RectangleTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Shapes/RectangleTests.cs
@@ -18,7 +18,7 @@ namespace Avalonia.Controls.UnitTests.Shapes
target.Measure(new Size(100, 100));
var geometry = Assert.IsType(target.RenderedGeometry);
- Assert.Equal(Rect.Empty, geometry.Rect);
+ Assert.Equal(Rect.Default, geometry.Rect);
}
[Fact]