FrameworkElementAutomationPeer Class
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Exposes FrameworkElement types (including controls) to UI automation.
Inheritance Hierarchy
System.Object
System.Windows.DependencyObject
System.Windows.Automation.Peers.AutomationPeer
System.Windows.Automation.Peers.FrameworkElementAutomationPeer
More...
Namespace: System.Windows.Automation.Peers
Assembly: System.Windows (in System.Windows.dll)
Syntax
'Declaration
Public Class FrameworkElementAutomationPeer _
Inherits AutomationPeer
public class FrameworkElementAutomationPeer : AutomationPeer
The FrameworkElementAutomationPeer type exposes the following members.
Constructors
Name | Description | |
---|---|---|
FrameworkElementAutomationPeer | Initializes a new instance of the FrameworkElementAutomationPeer class. |
Top
Properties
Name | Description | |
---|---|---|
Dispatcher | Gets the Dispatcher this object is associated with. (Inherited from DependencyObject.) | |
EventsSource | Gets or sets an AutomationPeer that is reported to the automation client as a source for all the events that come from this AutomationPeer. (Inherited from AutomationPeer.) | |
Owner | Gets the UIElement that is associated with this FrameworkElementAutomationPeer. |
Top
Methods
Name | Description | |
---|---|---|
CheckAccess | Determines whether the calling thread has access to this object. (Inherited from DependencyObject.) | |
ClearValue | Clears the local value of a dependency property. (Inherited from DependencyObject.) | |
CreatePeerForElement | Creates a FrameworkElementAutomationPeer for the specified UIElement. | |
Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) | |
FromElement | Returns the FrameworkElementAutomationPeer for the specified UIElement. | |
GetAcceleratorKey | Gets the accelerator key combination for the object that is associated with the UI Automation peer. (Inherited from AutomationPeer.) | |
GetAcceleratorKeyCore | Returns the accelerator key for the UIElement that is associated with this FrameworkElementAutomationPeer. This method is called by GetAcceleratorKey. (Overrides AutomationPeer.GetAcceleratorKeyCore().) | |
GetAccessKey | Gets the access key for the object that is associated with the automation peer. (Inherited from AutomationPeer.) | |
GetAccessKeyCore | Returns the access key for the UIElement that is associated with this FrameworkElementAutomationPeer. This method is called by GetAccessKey. (Overrides AutomationPeer.GetAccessKeyCore().) | |
GetAnimationBaseValue | Returns any base value established for a Silverlight dependency property, which would apply in cases where an animation is not active. (Inherited from DependencyObject.) | |
GetAutomationControlType | Gets the control type for the object that is associated with the UI Automation peer. (Inherited from AutomationPeer.) | |
GetAutomationControlTypeCore | Returns the control type for the UIElement that is associated with this FrameworkElementAutomationPeer. This method is called by GetAutomationControlType. (Overrides AutomationPeer.GetAutomationControlTypeCore().) | |
GetAutomationId | Gets the AutomationId of the object that is associated with the automation peer. (Inherited from AutomationPeer.) | |
GetAutomationIdCore | Returns the string that uniquely identifies the FrameworkElement that is associated with this FrameworkElementAutomationPeer. This method is called by GetAutomationId. (Overrides AutomationPeer.GetAutomationIdCore().) | |
GetBoundingRectangle | Gets the Rect object that represents the screen coordinates of the element that is associated with the automation peer. (Inherited from AutomationPeer.) | |
GetBoundingRectangleCore | Returns the Rect that represents the bounding rectangle of the UIElement that is associated with this FrameworkElementAutomationPeer. This method is called by GetBoundingRectangle. (Overrides AutomationPeer.GetBoundingRectangleCore().) | |
GetChildren | Gets the collection of child elements that are represented in the UI Automation tree as immediate child elements of the automation peer. (Inherited from AutomationPeer.) | |
GetChildrenCore | Returns the collection of child elements of the UIElement that is associated with this FrameworkElementAutomationPeer. This method is called by GetChildren. (Overrides AutomationPeer.GetChildrenCore().) | |
GetClassName | Gets the name of the control class that is associated with the peer. (Inherited from AutomationPeer.) | |
GetClassNameCore | Returns the name of the UIElement that is associated with this FrameworkElementAutomationPeer. This method is called by GetClassName. (Overrides AutomationPeer.GetClassNameCore().) | |
GetClickablePoint | Gets a Point on the object that is associated with the automation peer that responds to a mouse click. (Inherited from AutomationPeer.) | |
GetClickablePointCore | Returns a Point that represents the clickable space that is on the UIElement that is associated with this FrameworkElementAutomationPeer. This method is called by GetClickablePoint. (Overrides AutomationPeer.GetClickablePointCore().) | |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetHelpText | Gets text that describes the functionality of the control that is associated with the automation peer. (Inherited from AutomationPeer.) | |
GetHelpTextCore | Returns the string that describes the functionality of the FrameworkElement that is associated with this FrameworkElementAutomationPeer. This method is called by GetHelpText. (Overrides AutomationPeer.GetHelpTextCore().) | |
GetItemStatus | Gets text that conveys the visual status of the object that is associated with this automation peer. (Inherited from AutomationPeer.) | |
GetItemStatusCore | Returns a string that communicates the visual status of the UIElement that is associated with this FrameworkElementAutomationPeer. This method is called by GetItemStatus. (Overrides AutomationPeer.GetItemStatusCore().) | |
GetItemType | Gets a string that describes what kind of item an element represents. (Inherited from AutomationPeer.) | |
GetItemTypeCore | Returns a human-readable string that contains the item type that the UIElement for this FrameworkElementAutomationPeer represents. This method is called by GetItemType. (Overrides AutomationPeer.GetItemTypeCore().) | |
GetLabeledBy | Gets the AutomationPeer for the UIElement that is targeted to the element. (Inherited from AutomationPeer.) | |
GetLabeledByCore | Returns the AutomationPeer for the UIElement that targets the FrameworkElement that is associated with this FrameworkElementAutomationPeer. This method is called by GetLabeledBy. (Overrides AutomationPeer.GetLabeledByCore().) | |
GetLocalizedControlType | Gets a localized string that represents the control type, for the control that is associated with this automation peer. The localized string parallels a AutomationControlType value. (Inherited from AutomationPeer.) | |
GetLocalizedControlTypeCore | Returns a localized human-readable string that identifies a control type. The control type is for the owner type that is associated with this FrameworkElementAutomationPeer. This method is called by GetLocalizedControlType. (Overrides AutomationPeer.GetLocalizedControlTypeCore().) | |
GetName | Gets the value that the automation peer reports as the UI Automation Name for the associated control. (Inherited from AutomationPeer.) | |
GetNameCore | Returns the UI Automation Name from the element that is associated with this FrameworkElementAutomationPeer. This method is called by GetName. (Overrides AutomationPeer.GetNameCore().) | |
GetOrientation | Gets a value that indicates the explicit control orientation, if any. (Inherited from AutomationPeer.) | |
GetOrientationCore | Returns a value that indicates whether the element that is associated with this FrameworkElementAutomationPeer is laid out in a specific direction. This method is called by GetOrientation. (Overrides AutomationPeer.GetOrientationCore().) | |
GetParent | Gets the AutomationPeer that is the parent of this AutomationPeer. (Inherited from AutomationPeer.) | |
GetPattern | Returns an object that supports the requested pattern, based on the patterns supported by this FrameworkElementAutomationPeer. (Overrides AutomationPeer.GetPattern(PatternInterface).) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
GetValue | Returns the current effective value of a dependency property from a DependencyObject. (Inherited from DependencyObject.) | |
HasKeyboardFocus | Gets a value that indicates whether the object that is associated with this automation peer currently has keyboard focus. (Inherited from AutomationPeer.) | |
HasKeyboardFocusCore | Returns a value that indicates whether the UIElement that is associated with this FrameworkElementAutomationPeer currently has keyboard input focus. This method is called by HasKeyboardFocus. (Overrides AutomationPeer.HasKeyboardFocusCore().) | |
InvalidatePeer | Triggers recalculation of the main properties of the AutomationPeer and raises the PropertyChanged notification to the automation client if the properties have changed. (Inherited from AutomationPeer.) | |
IsContentElement | Gets a value that indicates whether the object that is associated with this automation peer contains data that is presented to the user. (Inherited from AutomationPeer.) | |
IsContentElementCore | Returns a value that indicates whether the element that is associated with this FrameworkElementAutomationPeer is an element that contains data that is presented to the user. This method is called by IsContentElement. (Overrides AutomationPeer.IsContentElementCore().) | |
IsControlElement | Gets a value that indicates whether the element is understood by the user as interactive or as contributing to the logical structure of the control in the GUI. (Inherited from AutomationPeer.) | |
IsControlElementCore | Returns a value that indicates whether the object that is associated with this FrameworkElementAutomationPeer is understood by the end user as interactive. Optionally, the user might understand the object as contributing to the logical structure of the control in the GUI. This method is called by IsControlElement. (Overrides AutomationPeer.IsControlElementCore().) | |
IsEnabled | Gets a value that indicates whether the element associated with this automation peer supports interaction. (Inherited from AutomationPeer.) | |
IsEnabledCore | Returns a value that indicates whether the UIElement that is associated with this FrameworkElementAutomationPeer is enabled. This method is called by IsEnabled. (Overrides AutomationPeer.IsEnabledCore().) | |
IsKeyboardFocusable | Gets a value that indicates whether the element can accept keyboard focus. (Inherited from AutomationPeer.) | |
IsKeyboardFocusableCore | Returns a value that indicates whether the element that is associated with this FrameworkElementAutomationPeer can accept keyboard focus. This method is called by IsKeyboardFocusable. (Overrides AutomationPeer.IsKeyboardFocusableCore().) | |
IsOffscreen | Gets a value that indicates whether an element is off the screen. (Inherited from AutomationPeer.) | |
IsOffscreenCore | Returns a value that indicates whether the UIElement that is associated with this FrameworkElementAutomationPeer is off the screen. This method is called by IsOffscreen. (Overrides AutomationPeer.IsOffscreenCore().) | |
IsPassword | Gets a value that indicates whether the element contains sensitive content. (Inherited from AutomationPeer.) | |
IsPasswordCore | Returns a value that indicates whether the element that is associated with this FrameworkElementAutomationPeer contains protected content. This method is called by IsPassword. (Overrides AutomationPeer.IsPasswordCore().) | |
IsRequiredForForm | Gets a value that indicates whether the object that is associated with this peer must be completed on a form. (Inherited from AutomationPeer.) | |
IsRequiredForFormCore | Returns a value that indicates whether the element that is associated with this FrameworkElementAutomationPeer is required to be completed on a form. This method is called by IsRequiredForForm. (Overrides AutomationPeer.IsRequiredForFormCore().) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
PeerFromProvider | Gets an AutomationPeer for the specified IRawElementProviderSimple proxy. (Inherited from AutomationPeer.) | |
ProviderFromPeer | Gets the IRawElementProviderSimple proxy for the specified AutomationPeer. (Inherited from AutomationPeer.) | |
RaiseAutomationEvent | Raises an automation event. (Inherited from AutomationPeer.) | |
RaisePropertyChangedEvent | Raises an event to notify the automation client of a changed property value. (Inherited from AutomationPeer.) | |
ReadLocalValue | Returns the local value of a dependency property, if a local value is set. (Inherited from DependencyObject.) | |
SetFocus | Sets the keyboard focus on the object that is associated with this automation peer. (Inherited from AutomationPeer.) | |
SetFocusCore | Sets the keyboard input focus on the element that is associated with this FrameworkElementAutomationPeer. This method is called by SetFocus. (Overrides AutomationPeer.SetFocusCore().) | |
SetValue | Sets the local value of a dependency property on a DependencyObject. (Inherited from DependencyObject.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
Top
Remarks
Most controls use this class as the base for their automation peer class. In addition, UI Automation support can be added for classes that are strictly speaking not derived from the Silverlight Control class.
FrameworkElementAutomationPeer *Core Method Implementations
Each of the *Core methods implemented by FrameworkElementAutomationPeer have a simple implementation. These implementations reference native code of the Silverlight codebase. In several cases, the implementations make it possible for the instance-specific AutomationProperties attached property values from XAML and usercode to provide information to an automation peer at runtime.
The FrameworkElementAutomationPeer *Core methods that correspond to a AutomationProperties attached property are as follows:
For example, consider the following XAML: <Button AutomationProperties.Name="Pause"><Image Source="pause.png"/></Button>
This XAML is an example where a button does not have text content, only image content. The application author has specifically added a AutomationProperties.Name attached property value, so that the button has proper human-readable identification for accessibility scenarios such as being represented by a screen reader. In the basic ButtonAutomationPeer implementation, the first thing that the implementation chain does is to call base, which invokes the GetNameCore() method. In this case the GetNameCore() method finds that a value for AutomationProperties.Name exists in the attached property store for this Button instance, and therefore returns that value. The specific ButtonAutomationPeer implementation of GetNameCore is only invoked in the cases where the base returns null. Your own implementations of any *Core method that corresponds to a AutomationProperties attached property should follow this pattern: call base first to make sure that the FrameworkElementAutomationPeer base cannot obtain a runtime value based on instance-specific AutomationProperties values. Only if the base returns null should your *Core implementations attempt to provide a value, as determined either by general values for all class instances, or other instance-specific values that are available through the peer or its owner.
In some cases, a peer should implement a *Core method such that any automation information that exists in an object contained by the owner can be correctly forwarded by the owner's peer. This is the reason why certain "Item" peers such as ItemAutomationPeer override a larger range of *Core methods than a typical Silverlight automation peer does. Depending on your control implementation, it may be worthwhile to base the peer on ItemAutomationPeer to take advantage of that implementation. Otherwise, you can follow this basic pattern (code shown here is an implementation from ItemAutomationPeer).
protected override AutomationPeer GetLabeledByCore()
{
if (base.Owner != null)
{ //this is the base call that makes sure AutomationProperties.LabeledBy
// gets used if it is set on an instance
return base.GetLabeledByCore();
}
AutomationPeer containerPeer = this.GetContainerPeer();
if (containerPeer != null)
{ // this checks whether there is a container peer, and if so forwards
//the call to that peer's version of the method
return containerPeer.GetLabeledBy();
}
return null;
}
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
See Also
Reference
Other Resources
Inheritance Hierarchy
System.Object
System.Windows.DependencyObject
System.Windows.Automation.Peers.AutomationPeer
System.Windows.Automation.Peers.FrameworkElementAutomationPeer
System.Windows.Automation.Peers.AutoCompleteBoxAutomationPeer
System.Windows.Automation.Peers.ButtonBaseAutomationPeer
System.Windows.Automation.Peers.CalendarAutomationPeer
System.Windows.Automation.Peers.CalendarButtonAutomationPeer
System.Windows.Automation.Peers.CalendarDayButtonAutomationPeer
System.Windows.Automation.Peers.ChildWindowAutomationPeer
System.Windows.Automation.Peers.DataGridAutomationPeer
System.Windows.Automation.Peers.DataGridCellAutomationPeer
System.Windows.Automation.Peers.DataGridColumnHeaderAutomationPeer
System.Windows.Automation.Peers.DataGridColumnHeadersPresenterAutomationPeer
System.Windows.Automation.Peers.DataGridDetailsPresenterAutomationPeer
System.Windows.Automation.Peers.DataGridGroupItemAutomationPeer
System.Windows.Automation.Peers.DataGridItemAutomationPeer
System.Windows.Automation.Peers.DataGridRowAutomationPeer
System.Windows.Automation.Peers.DataGridRowGroupHeaderAutomationPeer
System.Windows.Automation.Peers.DataGridRowHeaderAutomationPeer
System.Windows.Automation.Peers.DataGridRowsPresenterAutomationPeer
System.Windows.Automation.Peers.DataPagerAutomationPeer
System.Windows.Automation.Peers.DatePickerAutomationPeer
System.Windows.Automation.Peers.DescriptionViewerAutomationPeer
System.Windows.Automation.Peers.FrameAutomationPeer
System.Windows.Automation.Peers.GridSplitterAutomationPeer
System.Windows.Automation.Peers.ImageAutomationPeer
System.Windows.Automation.Peers.ItemAutomationPeer
System.Windows.Automation.Peers.ItemsControlAutomationPeer
System.Windows.Automation.Peers.LabelAutomationPeer
System.Windows.Automation.Peers.MediaElementAutomationPeer
System.Windows.Automation.Peers.MultiScaleImageAutomationPeer
System.Windows.Automation.Peers.PasswordBoxAutomationPeer
System.Windows.Automation.Peers.RangeBaseAutomationPeer
System.Windows.Automation.Peers.RichTextBlockAutomationPeer
System.Windows.Automation.Peers.RichTextBlockOverflowAutomationPeer
System.Windows.Automation.Peers.RichTextBoxAutomationPeer
System.Windows.Automation.Peers.ScrollViewerAutomationPeer
System.Windows.Automation.Peers.TextBlockAutomationPeer
System.Windows.Automation.Peers.TextBoxAutomationPeer
System.Windows.Automation.Peers.ThumbAutomationPeer
System.Windows.Automation.Peers.TreeViewAutomationPeer
System.Windows.Automation.Peers.TreeViewItemAutomationPeer
System.Windows.Automation.Peers.ValidationSummaryAutomationPeer