Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / 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 - 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. //---------------------------------------------------------------------------- //// 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
- SystemIcmpV4Statistics.cs
- BitSet.cs
- BitmapPalette.cs
- RenderTargetBitmap.cs
- PolyLineSegment.cs
- BitmapEffectInputConnector.cs
- DrawItemEvent.cs
- DateTime.cs
- MessagePropertyVariants.cs
- CurrentChangingEventManager.cs
- SqlDependencyListener.cs
- HostExecutionContextManager.cs
- PackageProperties.cs
- SettingsPropertyCollection.cs
- UIElement3D.cs
- MultipartContentParser.cs
- DataGridComponentEditor.cs
- RelatedCurrencyManager.cs
- ExternalFile.cs
- AssemblyName.cs
- ExtensionFile.cs
- GenerateScriptTypeAttribute.cs
- NamespaceInfo.cs
- SafeRegistryHandle.cs
- ScriptingJsonSerializationSection.cs
- PointAnimationBase.cs
- SecurityUtils.cs
- FtpRequestCacheValidator.cs
- QilGenerator.cs
- InlineUIContainer.cs
- SessionViewState.cs
- XmlSerializerFactory.cs
- OutputCacheProfileCollection.cs
- ModelUtilities.cs
- ResourceExpressionBuilder.cs
- JulianCalendar.cs
- DataPagerField.cs
- DataBindingHandlerAttribute.cs
- HandoffBehavior.cs
- ThreadAbortException.cs
- DataGridRelationshipRow.cs
- DebugHandleTracker.cs
- MessageQueuePermissionEntryCollection.cs
- XPathCompileException.cs
- RuntimeArgumentHandle.cs
- ContractMethodParameterInfo.cs
- InputBinder.cs
- SiteMembershipCondition.cs
- HttpHandlersSection.cs
- ApplyImportsAction.cs
- TableParagraph.cs
- BackStopAuthenticationModule.cs
- SignedXmlDebugLog.cs
- WorkflowInstanceRecord.cs
- ScrollPatternIdentifiers.cs
- AttributeProviderAttribute.cs
- MessageQueueCriteria.cs
- StrongNamePublicKeyBlob.cs
- MsmqIntegrationElement.cs
- FixedNode.cs
- WindowsListViewSubItem.cs
- ByteViewer.cs
- CommentAction.cs
- AttributedMetaModel.cs
- XmlHierarchicalEnumerable.cs
- XmlMembersMapping.cs
- DurableRuntimeValidator.cs
- ArrayElementGridEntry.cs
- MenuItemStyle.cs
- XmlSchemaChoice.cs
- ApplicationDirectoryMembershipCondition.cs
- BroadcastEventHelper.cs
- AudioStateChangedEventArgs.cs
- Parser.cs
- grammarelement.cs
- TokenizerHelper.cs
- UnconditionalPolicy.cs
- BinHexDecoder.cs
- HwndSourceParameters.cs
- XmlSchema.cs
- DataObjectFieldAttribute.cs
- CultureMapper.cs
- InputManager.cs
- ListViewItemSelectionChangedEvent.cs
- InternalTypeHelper.cs
- FixedFlowMap.cs
- GeometryHitTestResult.cs
- TabletCollection.cs
- SqlRewriteScalarSubqueries.cs
- DelegatingTypeDescriptionProvider.cs
- Matrix.cs
- HtmlFormWrapper.cs
- AccessedThroughPropertyAttribute.cs
- XmlIterators.cs
- Guid.cs
- TypeConverterValueSerializer.cs
- SqlLiftWhereClauses.cs
- RtfControlWordInfo.cs
- CodeDOMUtility.cs
- DataBindingsDialog.cs