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
- NetworkInformationException.cs
- Schema.cs
- TimeSpanSecondsConverter.cs
- GeneralTransform3DTo2DTo3D.cs
- GeneralTransform3D.cs
- CategoryAttribute.cs
- CharAnimationBase.cs
- RijndaelManagedTransform.cs
- MessageBox.cs
- DesignerSerializerAttribute.cs
- ToolstripProfessionalRenderer.cs
- XmlElementAttribute.cs
- ScriptingRoleServiceSection.cs
- Automation.cs
- OdbcException.cs
- Run.cs
- IpcChannel.cs
- HtmlDocument.cs
- DesignerSerializationVisibilityAttribute.cs
- SystemWebCachingSectionGroup.cs
- TaiwanLunisolarCalendar.cs
- SRDisplayNameAttribute.cs
- CodeGotoStatement.cs
- Quaternion.cs
- ToolStripOverflow.cs
- BinaryMethodMessage.cs
- ContextQuery.cs
- RoleManagerModule.cs
- SecurityCapabilities.cs
- ObjectConverter.cs
- Tuple.cs
- GridItemPatternIdentifiers.cs
- SqlUserDefinedAggregateAttribute.cs
- UnaryNode.cs
- SqlRemoveConstantOrderBy.cs
- PowerModeChangedEventArgs.cs
- FormView.cs
- Task.cs
- HttpDebugHandler.cs
- Exceptions.cs
- DbParameterHelper.cs
- WebDescriptionAttribute.cs
- ToolboxItemAttribute.cs
- XmlUTF8TextWriter.cs
- SimpleFileLog.cs
- AssociationProvider.cs
- EntityDesignPluralizationHandler.cs
- ToolStripSettings.cs
- SemanticTag.cs
- WebConfigurationHostFileChange.cs
- DbTransaction.cs
- ExpressionNode.cs
- OrderByQueryOptionExpression.cs
- OpenFileDialog.cs
- XmlBindingWorker.cs
- WebPartConnectionsCloseVerb.cs
- CaseInsensitiveHashCodeProvider.cs
- ErasingStroke.cs
- CodeCompiler.cs
- _ShellExpression.cs
- DependencyObjectProvider.cs
- PathNode.cs
- loginstatus.cs
- SequenceDesignerAccessibleObject.cs
- SafeTimerHandle.cs
- ComponentDispatcher.cs
- ListenerSessionConnection.cs
- LifetimeServices.cs
- unsafeIndexingFilterStream.cs
- WebHttpBindingCollectionElement.cs
- FormViewRow.cs
- UnwrappedTypesXmlSerializerManager.cs
- ScriptingAuthenticationServiceSection.cs
- Misc.cs
- DataBindingCollectionConverter.cs
- DataGridTextBox.cs
- Animatable.cs
- BasicSecurityProfileVersion.cs
- CubicEase.cs
- PerfCounters.cs
- RenderOptions.cs
- DisplayToken.cs
- DateTimeFormatInfoScanner.cs
- BitConverter.cs
- DataGridItemAutomationPeer.cs
- OrderedDictionary.cs
- TextEffect.cs
- UserControl.cs
- XpsFilter.cs
- CodeExpressionStatement.cs
- MessageHeader.cs
- ExceptionUtil.cs
- LineSegment.cs
- ProxyOperationRuntime.cs
- TreeView.cs
- MetabaseSettings.cs
- KeyManager.cs
- RegexMatchCollection.cs
- SocketInformation.cs
- QuaternionValueSerializer.cs