In C# System.Windows.Rect.IsEmpty doesn’t return what you think it would.
For example:

Rect r = new Rect();
r.IsEmpty

returns false.

Empty has a special meaning, a value that represents a rectangle with no position or area.
From MSDN
The empty rectangle, which has X and Y property values of PositiveInfinity, and has Width and Height property values of NegativeInfinity.

Avoid mathematical computations involving empty rectangles. Because both X and Y are infinite values, processor operations are severely impaired by these operations.

Comparisons involving these values will not affect application performance.