Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Documents / FixedHyperLink.cs / 1305600 / FixedHyperLink.cs
//---------------------------------------------------------------------------- //// Copyright (C) 2004 by Microsoft Corporation. All rights reserved. // // // Description: // Implements the help class of FixedHyperLink. // // History: // 02/04/2005 - Ming Liu(MingLiu) - 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
- CompilerGlobalScopeAttribute.cs
- QueryParameter.cs
- XmlAtomErrorReader.cs
- DataGridViewColumnEventArgs.cs
- Message.cs
- GroupItem.cs
- ProxyWebPartManager.cs
- Configuration.cs
- SynchronizingStream.cs
- ColorKeyFrameCollection.cs
- CacheForPrimitiveTypes.cs
- StylusTip.cs
- StringToken.cs
- ManagementDateTime.cs
- TypeLibConverter.cs
- WorkerRequest.cs
- TextRangeEdit.cs
- ToolStripControlHost.cs
- RowToFieldTransformer.cs
- Constraint.cs
- AsyncOperation.cs
- SqlCommandSet.cs
- ColumnMapCopier.cs
- DataRowExtensions.cs
- FontWeights.cs
- TextTreeNode.cs
- Container.cs
- RequiredAttributeAttribute.cs
- LayoutEditorPart.cs
- TemplateNodeContextMenu.cs
- DataListItemEventArgs.cs
- IPipelineRuntime.cs
- FontNamesConverter.cs
- ArrayExtension.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- InternalPermissions.cs
- X509Chain.cs
- DataServiceProcessingPipeline.cs
- BoolExpr.cs
- Point3DIndependentAnimationStorage.cs
- QilPatternFactory.cs
- SqlGenericUtil.cs
- StringFreezingAttribute.cs
- HostSecurityManager.cs
- UIPermission.cs
- ControlPropertyNameConverter.cs
- ScaleTransform.cs
- SessionParameter.cs
- Span.cs
- SpAudioStreamWrapper.cs
- Splitter.cs
- WebServiceEndpoint.cs
- WrapPanel.cs
- InfoCardRSACryptoProvider.cs
- Expr.cs
- SafeCryptoHandles.cs
- ProcessActivityTreeOptions.cs
- ImageFormatConverter.cs
- Select.cs
- Cloud.cs
- QuaternionRotation3D.cs
- Int64Animation.cs
- WizardDesigner.cs
- SQLSingle.cs
- CommunicationException.cs
- DecimalConverter.cs
- PathFigureCollectionValueSerializer.cs
- ControlTemplate.cs
- TransactionBridge.cs
- XmlObjectSerializerReadContextComplex.cs
- TcpActivation.cs
- MethodCallConverter.cs
- MimeTypeMapper.cs
- HwndStylusInputProvider.cs
- TabControlEvent.cs
- Mappings.cs
- AsyncPostBackErrorEventArgs.cs
- MaterializeFromAtom.cs
- XmlSerializer.cs
- RouteParametersHelper.cs
- ManagedWndProcTracker.cs
- MasterPageCodeDomTreeGenerator.cs
- Vector3DAnimationBase.cs
- Setter.cs
- EventMappingSettingsCollection.cs
- ClientConfigurationHost.cs
- CleanUpVirtualizedItemEventArgs.cs
- ProvidePropertyAttribute.cs
- DebugHandleTracker.cs
- SerialStream.cs
- BitmapEffectInputConnector.cs
- SupportingTokenAuthenticatorSpecification.cs
- ExtractorMetadata.cs
- HttpResponse.cs
- httpapplicationstate.cs
- IntSecurity.cs
- IBuiltInEvidence.cs
- TextUtf8RawTextWriter.cs
- CertificateManager.cs
- COM2ExtendedBrowsingHandler.cs