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
- AttributeCollection.cs
- ForeignConstraint.cs
- EnumerableCollectionView.cs
- ObjectListItemCollection.cs
- TableProviderWrapper.cs
- LinearQuaternionKeyFrame.cs
- HostedAspNetEnvironment.cs
- DesignerDataTableBase.cs
- GeometryHitTestResult.cs
- VisualCollection.cs
- SiteMap.cs
- Schema.cs
- dataSvcMapFileLoader.cs
- ParallelEnumerableWrapper.cs
- SymDocumentType.cs
- ValidationErrorCollection.cs
- _FtpDataStream.cs
- webeventbuffer.cs
- Compiler.cs
- DynamicRenderer.cs
- DriveInfo.cs
- CategoryNameCollection.cs
- OperationAbortedException.cs
- DesignerValidatorAdapter.cs
- Exception.cs
- CanonicalXml.cs
- DoubleLinkListEnumerator.cs
- CodeCastExpression.cs
- BmpBitmapEncoder.cs
- DataReceivedEventArgs.cs
- DataTableCollection.cs
- ComplexLine.cs
- Switch.cs
- URLIdentityPermission.cs
- ResourceDescriptionAttribute.cs
- UnmanagedHandle.cs
- PropertyInfoSet.cs
- PackageDigitalSignature.cs
- EndPoint.cs
- RegexInterpreter.cs
- XsltArgumentList.cs
- CqlParserHelpers.cs
- TrackingProfileSerializer.cs
- StatusBarDrawItemEvent.cs
- ToolboxItem.cs
- SqlNodeTypeOperators.cs
- SoapIncludeAttribute.cs
- PaperSource.cs
- DnsPermission.cs
- WorkflowShape.cs
- TextParagraph.cs
- WebControl.cs
- HMACSHA1.cs
- SystemBrushes.cs
- AddingNewEventArgs.cs
- VisualBasicDesignerHelper.cs
- ClipboardData.cs
- SortDescription.cs
- CompiledIdentityConstraint.cs
- SystemSounds.cs
- Root.cs
- TableLayoutStyle.cs
- SchemaReference.cs
- UIElement.cs
- ResourceCategoryAttribute.cs
- EntityAdapter.cs
- PageTheme.cs
- ProviderBase.cs
- HtmlGenericControl.cs
- ColorAnimationBase.cs
- PaperSize.cs
- Parser.cs
- CommandBinding.cs
- HasCopySemanticsAttribute.cs
- LogEntryHeaderDeserializer.cs
- FloaterParaClient.cs
- PartBasedPackageProperties.cs
- DefaultAsyncDataDispatcher.cs
- InstanceNotReadyException.cs
- CollectionsUtil.cs
- rsa.cs
- EntityClientCacheEntry.cs
- GroupLabel.cs
- WebBaseEventKeyComparer.cs
- VarRefManager.cs
- SqlParameter.cs
- PermissionRequestEvidence.cs
- PartitionResolver.cs
- GridSplitter.cs
- XmlSchemaAttributeGroupRef.cs
- FontSizeConverter.cs
- FixedTextView.cs
- WindowsFormsHostAutomationPeer.cs
- Enlistment.cs
- SoapIncludeAttribute.cs
- ZipIOBlockManager.cs
- UpdatePanelTriggerCollection.cs
- GraphicsPath.cs
- AesManaged.cs
- ResXResourceReader.cs