Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / Automation / Peers / TextAutomationPeer.cs / 1 / 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
- CodeDomExtensionMethods.cs
- SlipBehavior.cs
- AuthorizationRuleCollection.cs
- VisualTransition.cs
- XmlUnspecifiedAttribute.cs
- ImportedNamespaceContextItem.cs
- SessionParameter.cs
- SchemaManager.cs
- EventLogTraceListener.cs
- HtmlTableCell.cs
- FastEncoderWindow.cs
- CodeExporter.cs
- DodSequenceMerge.cs
- ComponentCache.cs
- ServicesExceptionNotHandledEventArgs.cs
- SecurityTokenProvider.cs
- Int64Animation.cs
- RouteValueDictionary.cs
- CopyEncoder.cs
- RootBrowserWindowProxy.cs
- ResourceSetExpression.cs
- ObjectToken.cs
- UiaCoreTypesApi.cs
- CryptoProvider.cs
- StylusTip.cs
- MultiDataTrigger.cs
- InvalidOleVariantTypeException.cs
- XmlUtil.cs
- GeometryGroup.cs
- DataList.cs
- ScriptManager.cs
- DataGridTablesFactory.cs
- StreamUpgradeAcceptor.cs
- Stackframe.cs
- MailBnfHelper.cs
- SchemaEntity.cs
- SystemWebExtensionsSectionGroup.cs
- SectionXmlInfo.cs
- BamlBinaryReader.cs
- TextEmbeddedObject.cs
- PlanCompilerUtil.cs
- WindowClosedEventArgs.cs
- SystemIcmpV4Statistics.cs
- CapabilitiesState.cs
- TypedReference.cs
- CompressEmulationStream.cs
- MetadataPropertyvalue.cs
- LabelLiteral.cs
- DecimalKeyFrameCollection.cs
- Rule.cs
- ResourceReferenceKeyNotFoundException.cs
- CollectionContainer.cs
- JsonQNameDataContract.cs
- AccessibilityHelperForXpWin2k3.cs
- SchemaTableColumn.cs
- Process.cs
- Timer.cs
- ListBoxChrome.cs
- SafeSecurityHandles.cs
- CrossAppDomainChannel.cs
- EntityStoreSchemaFilterEntry.cs
- WebPartConnectionsConfigureVerb.cs
- IndentTextWriter.cs
- CheckableControlBaseAdapter.cs
- StrokeNodeData.cs
- TaskFileService.cs
- MessageSecurityProtocol.cs
- HtmlElementErrorEventArgs.cs
- HighContrastHelper.cs
- Literal.cs
- _MultipleConnectAsync.cs
- ControlUtil.cs
- RectangleHotSpot.cs
- ValidationException.cs
- RowUpdatedEventArgs.cs
- WorkflowTraceTransfer.cs
- IndexedGlyphRun.cs
- NamespaceList.cs
- ThreadStartException.cs
- SponsorHelper.cs
- TextBox.cs
- StringUtil.cs
- ButtonChrome.cs
- PersonalizationStateInfo.cs
- CodeGroup.cs
- X509CertificateValidationMode.cs
- CursorConverter.cs
- HttpsHostedTransportConfiguration.cs
- HostingMessageProperty.cs
- MemoryFailPoint.cs
- coordinatorfactory.cs
- NativeActivity.cs
- NeedSkipTokenVisitor.cs
- CodeFieldReferenceExpression.cs
- NegationPusher.cs
- BinaryObjectReader.cs
- TypeBuilder.cs
- ContainerUtilities.cs
- Rotation3D.cs
- WebPartZoneCollection.cs