Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / Automation / Peers / DocumentViewerBaseAutomationPeer.cs / 1 / DocumentViewerBaseAutomationPeer.cs
//----------------------------------------------------------------------------
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// File: DocumentViewerBaseAutomationPeer.cs
//
// Description: AutomationPeer associated with DocumentViewerBase.
//
//---------------------------------------------------------------------------
using System.Collections.Generic; // List
using System.Windows.Controls.Primitives; // DocumentViewerBase
using System.Windows.Documents; // IDocumentPaginatorSource
namespace System.Windows.Automation.Peers
{
///
/// AutomationPeer associated with DocumentViewerBase.
///
public class DocumentViewerBaseAutomationPeer : FrameworkElementAutomationPeer
{
///
/// Constructor.
///
/// Owner of the AutomationPeer.
public DocumentViewerBaseAutomationPeer(DocumentViewerBase owner)
: base(owner)
{ }
///
///
///
public override object GetPattern(PatternInterface patternInterface)
{
object returnValue = null;
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 DocumentViewerBase returns an AutomationPeer
/// for hosted Document and for elements in the style.
///
protected override List GetChildrenCore()
{
// Get children for all elements in the style.
List children = base.GetChildrenCore();
// Add AutomationPeer associated with the document.
// Make it the first child of the collection.
AutomationPeer documentPeer = GetDocumentAutomationPeer();
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 "DocumentViewer";
}
///
/// Retrieves AutomationPeer for the document.
///
///
private AutomationPeer GetDocumentAutomationPeer()
{
AutomationPeer documentPeer = null;
IDocumentPaginatorSource document = ((DocumentViewerBase)Owner).Document;
if (document != null)
{
if (document is UIElement)
{
documentPeer = UIElementAutomationPeer.CreatePeerForElement((UIElement)document);
}
else if (document is ContentElement)
{
documentPeer = ContentElementAutomationPeer.CreatePeerForElement((ContentElement)document);
}
}
return documentPeer;
}
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: DocumentViewerBaseAutomationPeer.cs
//
// Description: AutomationPeer associated with DocumentViewerBase.
//
//---------------------------------------------------------------------------
using System.Collections.Generic; // List
using System.Windows.Controls.Primitives; // DocumentViewerBase
using System.Windows.Documents; // IDocumentPaginatorSource
namespace System.Windows.Automation.Peers
{
///
/// AutomationPeer associated with DocumentViewerBase.
///
public class DocumentViewerBaseAutomationPeer : FrameworkElementAutomationPeer
{
///
/// Constructor.
///
/// Owner of the AutomationPeer.
public DocumentViewerBaseAutomationPeer(DocumentViewerBase owner)
: base(owner)
{ }
///
///
///
public override object GetPattern(PatternInterface patternInterface)
{
object returnValue = null;
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 DocumentViewerBase returns an AutomationPeer
/// for hosted Document and for elements in the style.
///
protected override List GetChildrenCore()
{
// Get children for all elements in the style.
List children = base.GetChildrenCore();
// Add AutomationPeer associated with the document.
// Make it the first child of the collection.
AutomationPeer documentPeer = GetDocumentAutomationPeer();
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 "DocumentViewer";
}
///
/// Retrieves AutomationPeer for the document.
///
///
private AutomationPeer GetDocumentAutomationPeer()
{
AutomationPeer documentPeer = null;
IDocumentPaginatorSource document = ((DocumentViewerBase)Owner).Document;
if (document != null)
{
if (document is UIElement)
{
documentPeer = UIElementAutomationPeer.CreatePeerForElement((UIElement)document);
}
else if (document is ContentElement)
{
documentPeer = ContentElementAutomationPeer.CreatePeerForElement((ContentElement)document);
}
}
return documentPeer;
}
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
- TrackingRecordPreFilter.cs
- TabControlDesigner.cs
- BoundColumn.cs
- DocumentApplicationJournalEntry.cs
- HttpCookiesSection.cs
- FeatureSupport.cs
- GACIdentityPermission.cs
- Evidence.cs
- DbConnectionPoolGroupProviderInfo.cs
- _CookieModule.cs
- XamlInt32CollectionSerializer.cs
- LayoutEditorPart.cs
- ToolboxItemFilterAttribute.cs
- SafeViewOfFileHandle.cs
- TimeSpanStorage.cs
- HtmlTable.cs
- HtmlTitle.cs
- RadioButton.cs
- Win32SafeHandles.cs
- TabControlToolboxItem.cs
- SingletonChannelAcceptor.cs
- SystemIcmpV4Statistics.cs
- EntityDataSourceConfigureObjectContext.cs
- ObjectStorage.cs
- OciEnlistContext.cs
- Command.cs
- Queue.cs
- ImageSourceConverter.cs
- InvalidBodyAccessException.cs
- VectorAnimationBase.cs
- DrawingBrush.cs
- BaseValidatorDesigner.cs
- ConfigurationSettings.cs
- WinCategoryAttribute.cs
- HtmlShimManager.cs
- XmlTypeMapping.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- Int32CollectionConverter.cs
- IndependentAnimationStorage.cs
- ProjectionCamera.cs
- CharacterMetricsDictionary.cs
- HttpModulesSection.cs
- Point3DIndependentAnimationStorage.cs
- Transform3DGroup.cs
- CookielessData.cs
- EditorPart.cs
- RectangleF.cs
- SmtpClient.cs
- XmlCodeExporter.cs
- DoubleKeyFrameCollection.cs
- LayoutDump.cs
- PointValueSerializer.cs
- FormViewRow.cs
- PublisherIdentityPermission.cs
- TypeGeneratedEventArgs.cs
- BamlLocalizer.cs
- GeometryDrawing.cs
- MimeWriter.cs
- BooleanSwitch.cs
- WindowPattern.cs
- StrongName.cs
- DataObjectPastingEventArgs.cs
- ClientTargetCollection.cs
- XmlSchemaComplexType.cs
- PerformanceCounterPermissionEntry.cs
- Win32Native.cs
- SendSecurityHeaderElementContainer.cs
- WindowsFormsSynchronizationContext.cs
- PrintPreviewDialog.cs
- InstanceCreationEditor.cs
- pingexception.cs
- XmlWriter.cs
- EnumValAlphaComparer.cs
- SpecularMaterial.cs
- XmlTextReaderImplHelpers.cs
- DropDownList.cs
- SelectionProcessor.cs
- ToolStripContainer.cs
- IncrementalReadDecoders.cs
- QilIterator.cs
- XmlAnyAttributeAttribute.cs
- TemplateControlBuildProvider.cs
- TextBoxRenderer.cs
- DesignerProperties.cs
- OperatingSystem.cs
- ConnectionStringsExpressionBuilder.cs
- RawUIStateInputReport.cs
- NameTable.cs
- NetworkCredential.cs
- remotingproxy.cs
- TextBoxAutoCompleteSourceConverter.cs
- PagedControl.cs
- DefaultSerializationProviderAttribute.cs
- TableLayoutSettingsTypeConverter.cs
- EventData.cs
- ReadOnlyTernaryTree.cs
- Compiler.cs
- TextBox.cs
- ClientSettingsStore.cs
- InstanceDataCollection.cs