protected override void InvokeOverride() { var actualTarget = ActualTarget; var actualProperty = ActualProperty; var actualValue = ActualValue; _localValue = actualTarget.ReadLocalValue(actualProperty); if (actualValue.IsDependencyPropertyUnsetValue()) { actualTarget.ClearValue(actualProperty); } else { actualTarget.SetValue(actualProperty, ActualValue); } if (SustainDelay.HasTimeSpan == false) { RestoreValue(); } else { DelayAction.StaticInvoke(RestoreValue, SustainDelay.TimeSpan); } }