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
- NetSectionGroup.cs
- NativeMethods.cs
- DataGridViewDataConnection.cs
- ConfigurationLockCollection.cs
- DataFormat.cs
- HttpServerVarsCollection.cs
- CorrelationService.cs
- NegationPusher.cs
- DataGridViewTopRowAccessibleObject.cs
- ButtonPopupAdapter.cs
- SecurityDocument.cs
- WebPartTransformerCollection.cs
- SoapElementAttribute.cs
- SQLRoleProvider.cs
- TargetParameterCountException.cs
- MessageBuilder.cs
- SpellCheck.cs
- DataGridViewCell.cs
- Visual3D.cs
- ExclusiveHandleList.cs
- DefaultAssemblyResolver.cs
- KeySpline.cs
- UnmanagedHandle.cs
- KnownBoxes.cs
- AsyncOperationManager.cs
- StreamingContext.cs
- ModelMemberCollection.cs
- ResourceDictionaryCollection.cs
- CoTaskMemSafeHandle.cs
- StorageScalarPropertyMapping.cs
- PropertyValueChangedEvent.cs
- ReferenceEqualityComparer.cs
- DiscriminatorMap.cs
- XmlSchemaAttributeGroup.cs
- NameValueSectionHandler.cs
- MemoryMappedViewStream.cs
- UpdateManifestForBrowserApplication.cs
- TransactionFlowOption.cs
- SamlAssertion.cs
- ProcessInfo.cs
- TimelineGroup.cs
- TableAutomationPeer.cs
- ActivitySurrogateSelector.cs
- WindowInteropHelper.cs
- XamlPointCollectionSerializer.cs
- DefaultHttpHandler.cs
- Int32Storage.cs
- DetailsViewInsertEventArgs.cs
- DependencyObjectPropertyDescriptor.cs
- StateMachine.cs
- XmlSchemaAttribute.cs
- GPStream.cs
- HitTestFilterBehavior.cs
- HierarchicalDataSourceDesigner.cs
- StyleXamlParser.cs
- TextAdaptor.cs
- InlineCollection.cs
- filewebresponse.cs
- EntitySetRetriever.cs
- Cursor.cs
- ConfigXmlDocument.cs
- TraceLog.cs
- MultipartContentParser.cs
- Exceptions.cs
- WebCategoryAttribute.cs
- UnauthorizedWebPart.cs
- FactoryMaker.cs
- ZoneMembershipCondition.cs
- DupHandleConnectionReader.cs
- ImageCodecInfoPrivate.cs
- Listen.cs
- XmlSiteMapProvider.cs
- EventLogEntryCollection.cs
- ListItem.cs
- ColumnWidthChangedEvent.cs
- RelatedPropertyManager.cs
- IERequestCache.cs
- TraceHandlerErrorFormatter.cs
- ProcessHostMapPath.cs
- SqlConnectionFactory.cs
- VirtualizedItemProviderWrapper.cs
- Rectangle.cs
- SqlDataSourceView.cs
- EndpointConfigContainer.cs
- CodeSnippetStatement.cs
- FilterEventArgs.cs
- InputLanguageSource.cs
- KnownTypesHelper.cs
- PropertyEmitter.cs
- FunctionCommandText.cs
- Attributes.cs
- WebHttpSecurityElement.cs
- PartialCachingControl.cs
- GuidelineSet.cs
- TextEditorContextMenu.cs
- AxisAngleRotation3D.cs
- CustomGrammar.cs
- RequestCacheManager.cs
- CriticalHandle.cs
- WebPartsPersonalization.cs