Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Documents / FixedHyperLink.cs / 1 / FixedHyperLink.cs
//---------------------------------------------------------------------------- //// Copyright (C) 2004 by Microsoft Corporation. All rights reserved. // // // Description: // Implements the help class of FixedHyperLink. // // History: // 02/04/2005 - [....]([....]) - Created. // // //--------------------------------------------------------------------------- namespace System.Windows.Documents { using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.ComponentModel; using System.Diagnostics; using System.Windows.Threading; using System.Windows.Markup; using System.Windows.Navigation; using System.Windows.Media; ////// The IFixedNavigate interface will be implemented by FixedPage, FixedDocument, /// and FixedDocumentSequence to support fixed hyperlink. /// internal interface IFixedNavigate { ////// Find the element which given ID in this document context. /// /// The ID of UIElement to search for /// The fixedPage that contains returns UIElement ///UIElement FindElementByID(string elementID, out FixedPage rootFixedPage); /// /// Navigate to the element with ID= elementID /// /// void NavigateAsync (string elementID); } internal static class FixedHyperLink { ////// NavigationService property ChangedCallback. /// public static void OnNavigationServiceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { FixedDocument fixedContent = d as FixedDocument; if (fixedContent != null) { NavigationService oldService = (NavigationService) e.OldValue; NavigationService newService = (NavigationService) e.NewValue; if (oldService != null) { oldService.FragmentNavigation -= new FragmentNavigationEventHandler(FragmentHandler); } if (newService != null) { newService.FragmentNavigation += new FragmentNavigationEventHandler(FragmentHandler); } } } ////// Called by NavigationService to let document content to handle the fragment first. /// /// /// internal static void FragmentHandler(object sender, FragmentNavigationEventArgs e) { NavigationService ns = sender as NavigationService; if (ns != null) { string fragment = e.Fragment; IFixedNavigate fixedNavigate = ns.Content as IFixedNavigate; if (fixedNavigate != null) { fixedNavigate.NavigateAsync(e.Fragment); e.Handled = true; } } } ////// Fire BringinToView event on the element ID. /// /// The host document of element ID, call any one implents IFixedNavigate /// internal static void NavigateToElement(object ElementHost, string elementID) { FixedPage rootFixedPage = null; FrameworkElement targetElement = null; targetElement = ((IFixedNavigate)ElementHost).FindElementByID(elementID, out rootFixedPage) as FrameworkElement; if (targetElement != null) { if (targetElement is FixedPage) { // // For fixedpage, we only need to scroll to page position. // targetElement.BringIntoView(); } else { //Just passing in raw rect of targetElement. Let DocumentViewer/Grid handle transforms targetElement.BringIntoView(targetElement.VisualContentBounds); } } return; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- KnownBoxes.cs
- ToolStripRendererSwitcher.cs
- MsmqOutputChannel.cs
- RenderCapability.cs
- SwitchElementsCollection.cs
- IdentityNotMappedException.cs
- SafeEventLogReadHandle.cs
- MenuItemBindingCollection.cs
- Italic.cs
- ConfigurationManagerInternal.cs
- NotificationContext.cs
- CredentialCache.cs
- XmlBoundElement.cs
- ConsoleKeyInfo.cs
- WS2007HttpBindingCollectionElement.cs
- NamespaceInfo.cs
- PEFileReader.cs
- CommandEventArgs.cs
- GreaterThanOrEqual.cs
- MetadataItemSerializer.cs
- StartUpEventArgs.cs
- ImpersonationContext.cs
- TranslateTransform3D.cs
- SiteMapHierarchicalDataSourceView.cs
- ColorConvertedBitmap.cs
- PointAnimationClockResource.cs
- HMAC.cs
- InputEventArgs.cs
- MainMenu.cs
- ListBindingHelper.cs
- BitmapEffectGroup.cs
- ListItemConverter.cs
- DocumentReferenceCollection.cs
- TypeUsageBuilder.cs
- QuinticEase.cs
- EntityConnectionStringBuilder.cs
- FixedElement.cs
- StackSpiller.Bindings.cs
- ToolStripDropDownClosedEventArgs.cs
- RectValueSerializer.cs
- ThreadStartException.cs
- SelfIssuedAuthRSAPKCS1SignatureDeformatter.cs
- MultiPageTextView.cs
- TrustLevel.cs
- DuplicateWaitObjectException.cs
- XsdCachingReader.cs
- SrgsGrammar.cs
- GradientStop.cs
- SuppressMergeCheckAttribute.cs
- SmiRequestExecutor.cs
- ImageBrush.cs
- RegularExpressionValidator.cs
- WsatServiceAddress.cs
- View.cs
- ErrorStyle.cs
- FlowPanelDesigner.cs
- ExpressionHelper.cs
- FrameworkRichTextComposition.cs
- SettingsPropertyIsReadOnlyException.cs
- ListParagraph.cs
- DataGridViewCellMouseEventArgs.cs
- MdImport.cs
- WSHttpBindingBaseElement.cs
- FontFamily.cs
- TreeViewImageGenerator.cs
- NetDispatcherFaultException.cs
- DropDownButton.cs
- IndexedWhereQueryOperator.cs
- GroupByExpressionRewriter.cs
- CacheDependency.cs
- CngProperty.cs
- HttpPostedFile.cs
- Array.cs
- FilteredAttributeCollection.cs
- TypeDelegator.cs
- DragStartedEventArgs.cs
- XamlFrame.cs
- PersistenceTypeAttribute.cs
- EpmAttributeNameBuilder.cs
- TabItem.cs
- WrappedIUnknown.cs
- InfoCardServiceInstallComponent.cs
- RegularExpressionValidator.cs
- FocusManager.cs
- FixedElement.cs
- WaitingCursor.cs
- StorageComplexTypeMapping.cs
- DoubleAnimation.cs
- HttpsHostedTransportConfiguration.cs
- PostBackTrigger.cs
- BamlLocalizationDictionary.cs
- DateTimeUtil.cs
- SQLUtility.cs
- Nullable.cs
- TransformerConfigurationWizardBase.cs
- ImportCatalogPart.cs
- ProcessModelSection.cs
- UDPClient.cs
- XamlReader.cs
- FirewallWrapper.cs