Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Automation / Peers / FlowDocumentScrollViewerAutomationPeer.cs / 1305600 / 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); } } else if (patternInterface == PatternInterface.SynchronizedInput) { returnValue = base.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); } } else if (patternInterface == PatternInterface.SynchronizedInput) { returnValue = base.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
- XmlDownloadManager.cs
- MenuItem.cs
- Expression.cs
- CssClassPropertyAttribute.cs
- PropertyReferenceExtension.cs
- FixedStringLookup.cs
- WebConfigurationManager.cs
- BinaryMessageFormatter.cs
- StylusTouchDevice.cs
- CompilerError.cs
- HandledEventArgs.cs
- EventWaitHandle.cs
- InOutArgumentConverter.cs
- Buffer.cs
- OdbcUtils.cs
- DispatcherObject.cs
- StreamGeometry.cs
- BaseResourcesBuildProvider.cs
- Decimal.cs
- EncryptedPackage.cs
- ListDictionaryInternal.cs
- __ConsoleStream.cs
- ServiceDurableInstance.cs
- HttpInputStream.cs
- ProfileProvider.cs
- SoapSchemaImporter.cs
- NotificationContext.cs
- GlyphInfoList.cs
- MSAANativeProvider.cs
- FilterQueryOptionExpression.cs
- AsynchronousChannelMergeEnumerator.cs
- RunWorkerCompletedEventArgs.cs
- ToolStripItemTextRenderEventArgs.cs
- TextEditorMouse.cs
- CallbackValidatorAttribute.cs
- TableRowCollection.cs
- ImageInfo.cs
- FormsAuthenticationCredentials.cs
- StackSpiller.Generated.cs
- ByteStream.cs
- FileAuthorizationModule.cs
- CodeDefaultValueExpression.cs
- ProtocolsSection.cs
- ElementMarkupObject.cs
- InputScopeConverter.cs
- TableDesigner.cs
- Vector.cs
- RichTextBoxConstants.cs
- XmlConvert.cs
- TCPListener.cs
- VSWCFServiceContractGenerator.cs
- UserUseLicenseDictionaryLoader.cs
- EntityDataSourceDesigner.cs
- SqlCacheDependency.cs
- StructuredTypeEmitter.cs
- WizardDesigner.cs
- KnownBoxes.cs
- DatatypeImplementation.cs
- ValueChangedEventManager.cs
- AttributeProviderAttribute.cs
- ReflectionUtil.cs
- StickyNoteAnnotations.cs
- CLRBindingWorker.cs
- CodeGotoStatement.cs
- FilterableAttribute.cs
- PartitionResolver.cs
- Parameter.cs
- X509ChainPolicy.cs
- ADRoleFactoryConfiguration.cs
- ReflectionPermission.cs
- WorkflowViewElement.cs
- FirstMatchCodeGroup.cs
- BitmapEffectvisualstate.cs
- ConsumerConnectionPoint.cs
- SelectionUIHandler.cs
- StreamGeometryContext.cs
- TreeView.cs
- LZCodec.cs
- TraceSection.cs
- DataStreams.cs
- MailHeaderInfo.cs
- ReverseInheritProperty.cs
- HyperlinkAutomationPeer.cs
- SmtpException.cs
- TdsRecordBufferSetter.cs
- Attribute.cs
- HttpApplication.cs
- ZoneLinkButton.cs
- ClientSponsor.cs
- ChtmlPageAdapter.cs
- GridViewHeaderRowPresenter.cs
- TypeCollectionPropertyEditor.cs
- DelayLoadType.cs
- RichTextBoxConstants.cs
- ComboBox.cs
- SymbolDocumentGenerator.cs
- LineSegment.cs
- SessionStateContainer.cs
- CultureInfo.cs
- DataGridToolTip.cs