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
- OleDbRowUpdatedEvent.cs
- SrgsItemList.cs
- SettingsPropertyWrongTypeException.cs
- DesignObjectWrapper.cs
- MarginCollapsingState.cs
- InteropBitmapSource.cs
- HistoryEventArgs.cs
- CodeNamespaceCollection.cs
- BaseProcessor.cs
- connectionpool.cs
- ActivityDesignerLayoutSerializers.cs
- OperatingSystem.cs
- SmtpMail.cs
- ExpanderAutomationPeer.cs
- CustomValidator.cs
- CompilerScope.cs
- ToolStripRenderEventArgs.cs
- SqlProfileProvider.cs
- ViewgenGatekeeper.cs
- InvokeMethod.cs
- KeyboardEventArgs.cs
- IndexExpression.cs
- GlyphShapingProperties.cs
- pingexception.cs
- ColorTranslator.cs
- SurrogateDataContract.cs
- FixedSOMTableRow.cs
- SafeWaitHandle.cs
- ConsumerConnectionPointCollection.cs
- OuterGlowBitmapEffect.cs
- IndexedEnumerable.cs
- ConversionContext.cs
- EnumValAlphaComparer.cs
- ResourceLoader.cs
- QilScopedVisitor.cs
- NativeMethods.cs
- MsmqEncryptionAlgorithm.cs
- ColumnReorderedEventArgs.cs
- TraceContext.cs
- DataSourceView.cs
- StrokeSerializer.cs
- InputDevice.cs
- CheckBoxBaseAdapter.cs
- DataSourceProvider.cs
- SafeRightsManagementPubHandle.cs
- ListControlDataBindingHandler.cs
- SerializationEventsCache.cs
- DBConnection.cs
- TreeNodeEventArgs.cs
- ReaderWriterLockSlim.cs
- WinInetCache.cs
- MenuItemStyle.cs
- PLINQETWProvider.cs
- ResourceFallbackManager.cs
- SelectorAutomationPeer.cs
- ImageAnimator.cs
- XmlSchemaImport.cs
- X509AsymmetricSecurityKey.cs
- KnowledgeBase.cs
- GuidelineSet.cs
- SessionStateSection.cs
- MenuItemStyleCollection.cs
- HandledEventArgs.cs
- ValidatorCollection.cs
- entityreference_tresulttype.cs
- ContractMapping.cs
- UDPClient.cs
- CodeNamespaceCollection.cs
- MissingMethodException.cs
- TextSelectionHelper.cs
- ArgumentException.cs
- Int64AnimationBase.cs
- PassportAuthentication.cs
- safelink.cs
- EnumMemberAttribute.cs
- SettingsPropertyNotFoundException.cs
- TranslateTransform.cs
- NavigationService.cs
- KeysConverter.cs
- WorkItem.cs
- WindowsAuthenticationModule.cs
- WizardStepBase.cs
- MimeObjectFactory.cs
- HostedElements.cs
- SubqueryRules.cs
- SettingsAttributeDictionary.cs
- UserControlBuildProvider.cs
- GeometryHitTestParameters.cs
- IISMapPath.cs
- ExpressionLexer.cs
- HttpProtocolImporter.cs
- MetadataExchangeBindings.cs
- WebControl.cs
- Fonts.cs
- DurableOperationContext.cs
- SecurityPolicySection.cs
- CodeChecksumPragma.cs
- XmlDataImplementation.cs
- EffectiveValueEntry.cs
- WsdlExporter.cs