private static void OnKeyTipChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
		{
			bool newHasValue = !string.IsNullOrEmpty((string)e.NewValue);
			bool oldHasValue = !string.IsNullOrEmpty((string)e.OldValue);
			if (newHasValue != oldHasValue)
			{
				RoutedEventHandler onLoadedChanged = (o, ev) =>
				{
					if (newHasValue && d.IsLoaded())
						Current.scopeToElementMap.AddItem(d);
					else
						Current.scopeToElementMap.RemoveItem(d);
				};

				if (newHasValue)
				{
					Current.mTargets.Add(d);
					d.AddLoadedHandler(onLoadedChanged, onLoadedChanged);
				}
				else
				{
					Current.mTargets.Remove(d);
					d.RemoveLoadedHandler(onLoadedChanged, onLoadedChanged);
				}
				onLoadedChanged(null, null);
			}
		}