Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Automation / Peers / TextAutomationPeer.cs / 1305600 / TextAutomationPeer.cs
//----------------------------------------------------------------------------
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// File: ContentTextElementAutomationPeer.cs
//
// Description: Base class for AutomationPeers associated with TextPattern.
//
//---------------------------------------------------------------------------
using System.Collections.Generic; // List
using System.Windows.Automation.Provider; // IRawElementProviderSimple
using System.Windows.Documents; // ITextPointer
namespace System.Windows.Automation.Peers
{
///
/// Base class for AutomationPeers associated with TextPattern.
///
public abstract class TextAutomationPeer : FrameworkElementAutomationPeer
{
///
/// Constructor.
///
protected TextAutomationPeer(FrameworkElement owner)
: base(owner)
{}
///
/// GetNameCore will return a value matching (in priority order)
///
/// 1. Automation.Name
/// 2. GetLabeledBy.Name
/// 3. String.Empty
///
/// This differs from the base implementation in that we must
/// never return GetPlainText() .
///
override protected string GetNameCore()
{
string result = AutomationProperties.GetName(this.Owner);
if (string.IsNullOrEmpty(result))
{
AutomationPeer labelAutomationPeer = GetLabeledByCore();
if (labelAutomationPeer != null)
{
result = labelAutomationPeer.GetName();
}
}
return result ?? string.Empty;
}
///
/// Maps AutomationPeer to provider object.
///
internal new IRawElementProviderSimple ProviderFromPeer(AutomationPeer peer)
{
return base.ProviderFromPeer(peer);
}
///
/// Maps automation provider to DependencyObject.
///
internal DependencyObject ElementFromProvider(IRawElementProviderSimple provider)
{
DependencyObject element = null;
AutomationPeer peer = PeerFromProvider(provider);
if (peer is UIElementAutomationPeer)
{
element = ((UIElementAutomationPeer)peer).Owner;
}
else if (peer is ContentElementAutomationPeer)
{
element = ((ContentElementAutomationPeer)peer).Owner;
}
return element;
}
///
/// Gets collection of AutomationPeers for given text range.
///
internal abstract List GetAutomationPeersFromRange(ITextPointer start, ITextPointer end);
}
}
// 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: ContentTextElementAutomationPeer.cs
//
// Description: Base class for AutomationPeers associated with TextPattern.
//
//---------------------------------------------------------------------------
using System.Collections.Generic; // List
using System.Windows.Automation.Provider; // IRawElementProviderSimple
using System.Windows.Documents; // ITextPointer
namespace System.Windows.Automation.Peers
{
///
/// Base class for AutomationPeers associated with TextPattern.
///
public abstract class TextAutomationPeer : FrameworkElementAutomationPeer
{
///
/// Constructor.
///
protected TextAutomationPeer(FrameworkElement owner)
: base(owner)
{}
///
/// GetNameCore will return a value matching (in priority order)
///
/// 1. Automation.Name
/// 2. GetLabeledBy.Name
/// 3. String.Empty
///
/// This differs from the base implementation in that we must
/// never return GetPlainText() .
///
override protected string GetNameCore()
{
string result = AutomationProperties.GetName(this.Owner);
if (string.IsNullOrEmpty(result))
{
AutomationPeer labelAutomationPeer = GetLabeledByCore();
if (labelAutomationPeer != null)
{
result = labelAutomationPeer.GetName();
}
}
return result ?? string.Empty;
}
///
/// Maps AutomationPeer to provider object.
///
internal new IRawElementProviderSimple ProviderFromPeer(AutomationPeer peer)
{
return base.ProviderFromPeer(peer);
}
///
/// Maps automation provider to DependencyObject.
///
internal DependencyObject ElementFromProvider(IRawElementProviderSimple provider)
{
DependencyObject element = null;
AutomationPeer peer = PeerFromProvider(provider);
if (peer is UIElementAutomationPeer)
{
element = ((UIElementAutomationPeer)peer).Owner;
}
else if (peer is ContentElementAutomationPeer)
{
element = ((ContentElementAutomationPeer)peer).Owner;
}
return element;
}
///
/// Gets collection of AutomationPeers for given text range.
///
internal abstract List GetAutomationPeersFromRange(ITextPointer start, ITextPointer end);
}
}
// 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
- InputLanguageSource.cs
- CompilationRelaxations.cs
- SoapElementAttribute.cs
- Pen.cs
- XmlSchemaInferenceException.cs
- IdentitySection.cs
- CssStyleCollection.cs
- SoapTypeAttribute.cs
- XmlDownloadManager.cs
- TextRunTypographyProperties.cs
- AppearanceEditorPart.cs
- UserControl.cs
- WebCategoryAttribute.cs
- SizeConverter.cs
- MemoryRecordBuffer.cs
- SqlStatistics.cs
- EntityClassGenerator.cs
- COM2PropertyPageUITypeConverter.cs
- UnsafeNativeMethods.cs
- VisualStyleElement.cs
- TextEffect.cs
- DataKey.cs
- ConnectionPoint.cs
- MediaContext.cs
- StaticExtensionConverter.cs
- BooleanAnimationUsingKeyFrames.cs
- TcpTransportElement.cs
- LateBoundBitmapDecoder.cs
- RenderingEventArgs.cs
- TextEndOfParagraph.cs
- DetailsViewUpdateEventArgs.cs
- AuthenticatedStream.cs
- CalendarButton.cs
- DoubleAnimationClockResource.cs
- SafeMILHandle.cs
- XPathPatternBuilder.cs
- Helpers.cs
- SharedPersonalizationStateInfo.cs
- Timeline.cs
- AnimationClockResource.cs
- CategoryNameCollection.cs
- TcpClientChannel.cs
- DataGridViewLayoutData.cs
- SqlDataSourceSummaryPanel.cs
- GridViewCellAutomationPeer.cs
- HttpProfileGroupBase.cs
- AccessViolationException.cs
- SqlClientWrapperSmiStreamChars.cs
- TextRangeEditLists.cs
- GeneralTransform3DCollection.cs
- _Events.cs
- ToolTipAutomationPeer.cs
- NativeMethods.cs
- LightweightCodeGenerator.cs
- FixedStringLookup.cs
- TTSEvent.cs
- GeneratedView.cs
- FormView.cs
- ContainerVisual.cs
- HtmlShim.cs
- EventLogPermissionAttribute.cs
- EmptyStringExpandableObjectConverter.cs
- DrawListViewItemEventArgs.cs
- RefreshPropertiesAttribute.cs
- WindowsEditBox.cs
- ServiceHttpModule.cs
- UInt32.cs
- DataGridViewBand.cs
- ApplicationHost.cs
- DrawingVisual.cs
- HitTestParameters3D.cs
- QueryCursorEventArgs.cs
- CompilationUnit.cs
- BaseDataListDesigner.cs
- ComplexObject.cs
- SystemSounds.cs
- WinCategoryAttribute.cs
- ContextMenuStrip.cs
- SqlCacheDependencySection.cs
- AmbiguousMatchException.cs
- FileChangesMonitor.cs
- CryptoStream.cs
- XmlSchemaAttributeGroup.cs
- WebPartConnectionsEventArgs.cs
- Calendar.cs
- Rect3D.cs
- CommonObjectSecurity.cs
- CrossSiteScriptingValidation.cs
- SQLGuidStorage.cs
- MSHTMLHost.cs
- XmlUnspecifiedAttribute.cs
- AssemblyCollection.cs
- ObjectItemAttributeAssemblyLoader.cs
- XmlDictionaryString.cs
- Trace.cs
- NamespaceList.cs
- InputMethod.cs
- DocumentViewerAutomationPeer.cs
- SwitchDesigner.xaml.cs
- SapiRecognizer.cs