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
- SvcMapFileLoader.cs
- MachineKeySection.cs
- ResourceReader.cs
- CodeRemoveEventStatement.cs
- CellTreeNodeVisitors.cs
- DifferencingCollection.cs
- SerializationEventsCache.cs
- FormViewInsertedEventArgs.cs
- DirtyTextRange.cs
- SmtpCommands.cs
- MemoryStream.cs
- Light.cs
- DoubleLinkListEnumerator.cs
- Token.cs
- FreezableOperations.cs
- XmlCharacterData.cs
- EtwProvider.cs
- WebControlAdapter.cs
- DbFunctionCommandTree.cs
- safesecurityhelperavalon.cs
- GeometryGroup.cs
- SQLInt32.cs
- DbDataRecord.cs
- Splitter.cs
- HTMLTagNameToTypeMapper.cs
- DoubleCollectionValueSerializer.cs
- CompositeControl.cs
- Matrix.cs
- Query.cs
- WindowsListViewScroll.cs
- RegexParser.cs
- SrgsGrammarCompiler.cs
- EntryPointNotFoundException.cs
- ACE.cs
- SubMenuStyleCollectionEditor.cs
- CounterSet.cs
- ApplicationSecurityManager.cs
- ToolStripDesignerAvailabilityAttribute.cs
- SafeReadContext.cs
- BitmapEffectState.cs
- DbConnectionPoolGroupProviderInfo.cs
- xmlsaver.cs
- CrossAppDomainChannel.cs
- NetworkInterface.cs
- TypeDelegator.cs
- SqlGenerator.cs
- ColumnReorderedEventArgs.cs
- XmlSchemas.cs
- safesecurityhelperavalon.cs
- ToolBarButtonClickEvent.cs
- PcmConverter.cs
- AssertFilter.cs
- Site.cs
- Policy.cs
- QuaternionAnimation.cs
- SchemaSetCompiler.cs
- ContentPosition.cs
- EmptyQuery.cs
- Int64.cs
- CapabilitiesState.cs
- HandleRef.cs
- RangeValueProviderWrapper.cs
- BindingMemberInfo.cs
- XsltContext.cs
- MobileContainerDesigner.cs
- ObjectIDGenerator.cs
- ComponentResourceKey.cs
- Double.cs
- EntitySqlQueryState.cs
- TreeNode.cs
- Block.cs
- AddInEnvironment.cs
- AppSettingsExpressionBuilder.cs
- CodeIndexerExpression.cs
- CodeDomDesignerLoader.cs
- CodeTypeConstructor.cs
- ConfigurationHelpers.cs
- DataGridColumnReorderingEventArgs.cs
- PrintDocument.cs
- AuthenticationService.cs
- WorkflowRuntimeServiceElement.cs
- BitmapEffectInputData.cs
- _LocalDataStore.cs
- CompiledIdentityConstraint.cs
- contentDescriptor.cs
- TextSpanModifier.cs
- Byte.cs
- BinarySerializer.cs
- baseshape.cs
- log.cs
- BamlWriter.cs
- StrongTypingException.cs
- VariableQuery.cs
- Row.cs
- SecurityUtils.cs
- AdornerLayer.cs
- MasterPage.cs
- DrawingBrush.cs
- FileSystemEventArgs.cs
- GenericWebPart.cs