private static void ClearStatusBarAndCachedUri(object sender)
        {
            IInputElement inputElement = (IInputElement)sender;

            inputElement.RaiseEvent(RequestSetStatusBarEventArgs.Clear);
            Hyperlink.CacheNavigateUri((DependencyObject)sender, null);
            Hyperlink.s_criticalNavigateUriProtectee.Value = null;
        }
        private static void UpdateStatusBar(object sender)
        {
            IInputElement    inputElement     = (IInputElement)sender;
            DependencyObject dependencyObject = (DependencyObject)sender;
            Uri targetUri = (Uri)dependencyObject.GetValue(Hyperlink.GetNavigateUriProperty(inputElement));

            Hyperlink.s_criticalNavigateUriProtectee.Value = new int?(dependencyObject.GetHashCode());
            Hyperlink.CacheNavigateUri(dependencyObject, targetUri);
            RequestSetStatusBarEventArgs e = new RequestSetStatusBarEventArgs(targetUri);

            inputElement.RaiseEvent(e);
        }
 private static void OnKeyDown(object sender, KeyEventArgs e)
 {
     if (!e.Handled && e.Key == Key.Return)
     {
         Hyperlink.CacheNavigateUri((DependencyObject)sender, null);
         if (e.UserInitiated)
         {
             Hyperlink.DoUserInitiatedNavigation(sender);
         }
         else
         {
             Hyperlink.DoNonUserInitiatedNavigation(sender);
         }
         e.Handled = true;
     }
 }
 private static void DoNonUserInitiatedNavigation(object sender)
 {
     Hyperlink.CacheNavigateUri((DependencyObject)sender, null);
     Hyperlink.DispatchNavigation(sender);
 }