Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / Automation / Peers / FlowDocumentScrollViewerAutomationPeer.cs / 1 / FlowDocumentScrollViewerAutomationPeer.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: FlowDocumentScrollViewerAutomationPeer.cs // // Description: AutomationPeer associated with FlowDocumentScrollViewer. // //--------------------------------------------------------------------------- using System.Collections.Generic; // Listusing System.Windows.Automation.Provider; // IScrollProvider using System.Windows.Controls; // FlowDocumentScrollViewer using System.Windows.Documents; // FlowDocument using MS.Internal.Documents; // IFlowDocumentViewer namespace System.Windows.Automation.Peers { /// /// AutomationPeer associated with FlowDocumentScrollViewer. /// public class FlowDocumentScrollViewerAutomationPeer : FrameworkElementAutomationPeer { ////// Constructor. /// /// Owner of the AutomationPeer. public FlowDocumentScrollViewerAutomationPeer(FlowDocumentScrollViewer owner) : base(owner) { } ////// public override object GetPattern(PatternInterface patternInterface) { object returnValue = null; if (patternInterface == PatternInterface.Scroll) { FlowDocumentScrollViewer owner = (FlowDocumentScrollViewer)Owner; if (owner.ScrollViewer != null) { AutomationPeer scrollPeer = UIElementAutomationPeer.CreatePeerForElement(owner.ScrollViewer); if (scrollPeer != null && scrollPeer is IScrollProvider) { scrollPeer.EventsSource = this; returnValue = scrollPeer; } } } else if (patternInterface == PatternInterface.Text) { // Make sure that Automation children are created. this.GetChildren(); // Re-expose TextPattern from hosted document. if (_documentPeer != null) { _documentPeer.EventsSource = this; returnValue = _documentPeer.GetPattern(patternInterface); } } return returnValue; } ////// /// ////// /// AutomationPeer associated with FlowDocumentScrollViewer returns an AutomationPeer /// for hosted Document and for elements in the style. /// protected override ListGetChildrenCore() { // Get children for all elements in the style. List children = base.GetChildrenCore(); // If the owner is IFlowDocumentViewer, it means that it is embedded inside // FlowDocumentReaer. In this case DocumentAutumationPeer is already exposed. // Hence there is no need to add it to children collection. if (!(Owner is IFlowDocumentViewer)) { // Add AutomationPeer associated with the document. // Make it the first child of the collection. FlowDocument document = ((FlowDocumentScrollViewer)Owner).Document; if (document != null) { AutomationPeer documentPeer = ContentElementAutomationPeer.CreatePeerForElement(document); if (_documentPeer != documentPeer) { if (_documentPeer != null) { _documentPeer.OnDisconnected(); } _documentPeer = documentPeer as DocumentAutomationPeer; } if (documentPeer != null) { if (children == null) { children = new List (); } children.Add(documentPeer); } } } return children; } /// /// protected override AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.Document; } ////// /// protected override string GetClassNameCore() { return "FlowDocumentScrollViewer"; } private DocumentAutomationPeer _documentPeer; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: FlowDocumentScrollViewerAutomationPeer.cs // // Description: AutomationPeer associated with FlowDocumentScrollViewer. // //--------------------------------------------------------------------------- using System.Collections.Generic; // List/// using System.Windows.Automation.Provider; // IScrollProvider using System.Windows.Controls; // FlowDocumentScrollViewer using System.Windows.Documents; // FlowDocument using MS.Internal.Documents; // IFlowDocumentViewer namespace System.Windows.Automation.Peers { /// /// AutomationPeer associated with FlowDocumentScrollViewer. /// public class FlowDocumentScrollViewerAutomationPeer : FrameworkElementAutomationPeer { ////// Constructor. /// /// Owner of the AutomationPeer. public FlowDocumentScrollViewerAutomationPeer(FlowDocumentScrollViewer owner) : base(owner) { } ////// public override object GetPattern(PatternInterface patternInterface) { object returnValue = null; if (patternInterface == PatternInterface.Scroll) { FlowDocumentScrollViewer owner = (FlowDocumentScrollViewer)Owner; if (owner.ScrollViewer != null) { AutomationPeer scrollPeer = UIElementAutomationPeer.CreatePeerForElement(owner.ScrollViewer); if (scrollPeer != null && scrollPeer is IScrollProvider) { scrollPeer.EventsSource = this; returnValue = scrollPeer; } } } else if (patternInterface == PatternInterface.Text) { // Make sure that Automation children are created. this.GetChildren(); // Re-expose TextPattern from hosted document. if (_documentPeer != null) { _documentPeer.EventsSource = this; returnValue = _documentPeer.GetPattern(patternInterface); } } return returnValue; } ////// /// ////// /// AutomationPeer associated with FlowDocumentScrollViewer returns an AutomationPeer /// for hosted Document and for elements in the style. /// protected override ListGetChildrenCore() { // Get children for all elements in the style. List children = base.GetChildrenCore(); // If the owner is IFlowDocumentViewer, it means that it is embedded inside // FlowDocumentReaer. In this case DocumentAutumationPeer is already exposed. // Hence there is no need to add it to children collection. if (!(Owner is IFlowDocumentViewer)) { // Add AutomationPeer associated with the document. // Make it the first child of the collection. FlowDocument document = ((FlowDocumentScrollViewer)Owner).Document; if (document != null) { AutomationPeer documentPeer = ContentElementAutomationPeer.CreatePeerForElement(document); if (_documentPeer != documentPeer) { if (_documentPeer != null) { _documentPeer.OnDisconnected(); } _documentPeer = documentPeer as DocumentAutomationPeer; } if (documentPeer != null) { if (children == null) { children = new List (); } children.Add(documentPeer); } } } return children; } /// /// protected override AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.Document; } ////// /// protected override string GetClassNameCore() { return "FlowDocumentScrollViewer"; } private DocumentAutomationPeer _documentPeer; } } // 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
- NavigationWindow.cs
- OdbcPermission.cs
- ConstantExpression.cs
- ConfigurationManagerHelperFactory.cs
- TreeView.cs
- TagPrefixInfo.cs
- CompilerWrapper.cs
- SqlFacetAttribute.cs
- RowToParametersTransformer.cs
- CaseInsensitiveComparer.cs
- HtmlToClrEventProxy.cs
- TimeoutHelper.cs
- MaskedTextBox.cs
- Win32.cs
- IncrementalHitTester.cs
- COMException.cs
- DetailsViewUpdateEventArgs.cs
- ValueExpressions.cs
- HtmlInputCheckBox.cs
- CompilerError.cs
- OptimizerPatterns.cs
- OdbcInfoMessageEvent.cs
- WebPartDisplayModeEventArgs.cs
- Matrix.cs
- SoapCommonClasses.cs
- ProfileSettingsCollection.cs
- RuleRef.cs
- ButtonStandardAdapter.cs
- _SslSessionsCache.cs
- LeaseManager.cs
- SingleConverter.cs
- Converter.cs
- AudioStateChangedEventArgs.cs
- XPathDocumentBuilder.cs
- LeafCellTreeNode.cs
- MultipleViewPatternIdentifiers.cs
- Types.cs
- SiteOfOriginPart.cs
- CompleteWizardStep.cs
- SQLMoneyStorage.cs
- LocatorPart.cs
- MonitoringDescriptionAttribute.cs
- BamlLocalizationDictionary.cs
- BooleanConverter.cs
- SmiContext.cs
- ServiceNameElement.cs
- Lock.cs
- StatusBarAutomationPeer.cs
- DialogBaseForm.cs
- DebuggerService.cs
- RectAnimationBase.cs
- ThemeConfigurationDialog.cs
- CustomCategoryAttribute.cs
- TypeBrowser.xaml.cs
- AutomationElementCollection.cs
- iisPickupDirectory.cs
- TraceEventCache.cs
- TrustSection.cs
- XmlWrappingReader.cs
- FactoryId.cs
- XmlSignatureProperties.cs
- LocalFileSettingsProvider.cs
- Attributes.cs
- PolicyManager.cs
- EdgeModeValidation.cs
- DataGridViewColumn.cs
- EventMemberCodeDomSerializer.cs
- SafeFileHandle.cs
- BufferAllocator.cs
- DescendantBaseQuery.cs
- Enum.cs
- RuleSettings.cs
- StrokeFIndices.cs
- CorrelationScope.cs
- AttributedMetaModel.cs
- SqlDataSourceConfigureSortForm.cs
- DropShadowBitmapEffect.cs
- Dictionary.cs
- AutomationPatternInfo.cs
- SizeConverter.cs
- AliasedSlot.cs
- dataSvcMapFileLoader.cs
- HtmlShimManager.cs
- SpeechDetectedEventArgs.cs
- DesignOnlyAttribute.cs
- FaultException.cs
- AspCompat.cs
- SqlUserDefinedAggregateAttribute.cs
- NativeMethods.cs
- ZipIOLocalFileBlock.cs
- DefaultAssemblyResolver.cs
- FrameworkTemplate.cs
- ParseChildrenAsPropertiesAttribute.cs
- Visual3D.cs
- ObjectContextServiceProvider.cs
- ErrorEventArgs.cs
- Point3DCollectionValueSerializer.cs
- MaskedTextBoxDesigner.cs
- EdmFunctions.cs
- BatchWriter.cs