UnsetValue is a sentinel value that is used for scenarios where the property system is unable to determine a requested DependencyProperty value. UnsetValue is used rather than nullNothingnullptra null reference (Nothing in Visual Basic), because nullNothingnullptra null reference (Nothing in Visual Basic) could be a valid property value, as well as a valid (and frequently used) default value. UnsetValue is never returned out of GetValue. When you call GetValue on a dependency property on a DependencyObject, one of the following applies:
Establishing a default value of UnsetValue is specifically disallowed.
ReadLocalValue returns UnsetValue when the requested property has not been locally set.