Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / Automation / Peers / ItemAutomationPeer.cs / 1 / ItemAutomationPeer.cs
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Security;
using System.Text;
using System.Windows;
using System.Windows.Automation.Provider;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Interop;
using System.Windows.Media;
using MS.Internal;
using MS.Win32;
namespace System.Windows.Automation.Peers
{
///
public abstract class ItemAutomationPeer : AutomationPeer
{
///
protected ItemAutomationPeer(object item, ItemsControlAutomationPeer itemsControlAutomationPeer): base()
{
_item = item;
_itemsControlAutomationPeer = itemsControlAutomationPeer;
}
internal UIElement GetWrapper()
{
UIElement wrapper = null;
ItemsControl owner = (ItemsControl)(_itemsControlAutomationPeer.Owner);
if (owner != null)
{
if (((MS.Internal.Controls.IGeneratorHost)owner).IsItemItsOwnContainer(_item))
wrapper = _item as UIElement;
else
wrapper = owner.ItemContainerGenerator.ContainerFromItem(_item) as UIElement;
}
return wrapper;
}
internal AutomationPeer GetWrapperPeer()
{
AutomationPeer wrapperPeer = null;
UIElement wrapper = GetWrapper();
if(wrapper != null)
{
wrapperPeer = UIElementAutomationPeer.CreatePeerForElement(wrapper);
if(wrapperPeer == null) //fall back to default peer if there is no specific one
{
if(wrapper is FrameworkElement)
wrapperPeer = new FrameworkElementAutomationPeer((FrameworkElement)wrapper);
else
wrapperPeer = new UIElementAutomationPeer(wrapper);
}
}
return wrapperPeer;
}
///
override protected string GetItemTypeCore()
{
return string.Empty;
}
///
protected override List GetChildrenCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
{
//We need to update children here since the
wrapperPeer.UpdateSubtree();
List children = wrapperPeer.GetChildren();
return children;
}
return null;
}
///
protected override Rect GetBoundingRectangleCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetBoundingRectangle();
else
return new Rect();
}
///
protected override bool IsOffscreenCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.IsOffscreen();
else
return true;
}
///
protected override AutomationOrientation GetOrientationCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetOrientation();
else
return AutomationOrientation.None;
}
///
protected override string GetItemStatusCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetItemStatus();
else
return string.Empty;
}
///
protected override bool IsRequiredForFormCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.IsRequiredForForm();
else
return false;
}
///
protected override bool IsKeyboardFocusableCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.IsKeyboardFocusable();
else
return false;
}
///
protected override bool HasKeyboardFocusCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.HasKeyboardFocus();
else
return false;
}
///
protected override bool IsEnabledCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.IsEnabled();
else
return false;
}
///
protected override bool IsPasswordCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.IsPassword();
else
return false;
}
///
protected override string GetAutomationIdCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetAutomationId();
else
return string.Empty;
}
///
protected override string GetNameCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
string name = null;
if(wrapperPeer != null)
name = wrapperPeer.GetName();
if(name == null && _item is string)
name = (string)_item;
if(name == null)
name = string.Empty;
return name;
}
///
protected override bool IsContentElementCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.IsContentElement();
else
return true;
}
///
protected override bool IsControlElementCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.IsControlElement();
else
return true;
}
///
protected override AutomationPeer GetLabeledByCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetLabeledBy();
else
return null;
}
///
protected override string GetHelpTextCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetHelpText();
else
return string.Empty;
}
///
protected override string GetAcceleratorKeyCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetAcceleratorKey();
else
return string.Empty;
}
///
protected override string GetAccessKeyCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetAccessKey();
else
return string.Empty;
}
///
protected override Point GetClickablePointCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetClickablePoint();
else
return new Point(double.NaN, double.NaN);
}
///
protected override void SetFocusCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
wrapperPeer.SetFocus();
}
///
public object Item
{
get
{
return _item;
}
}
///
public ItemsControlAutomationPeer ItemsControlAutomationPeer
{
get
{
return _itemsControlAutomationPeer;
}
}
private object _item;
private ItemsControlAutomationPeer _itemsControlAutomationPeer;
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Security;
using System.Text;
using System.Windows;
using System.Windows.Automation.Provider;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Interop;
using System.Windows.Media;
using MS.Internal;
using MS.Win32;
namespace System.Windows.Automation.Peers
{
///
public abstract class ItemAutomationPeer : AutomationPeer
{
///
protected ItemAutomationPeer(object item, ItemsControlAutomationPeer itemsControlAutomationPeer): base()
{
_item = item;
_itemsControlAutomationPeer = itemsControlAutomationPeer;
}
internal UIElement GetWrapper()
{
UIElement wrapper = null;
ItemsControl owner = (ItemsControl)(_itemsControlAutomationPeer.Owner);
if (owner != null)
{
if (((MS.Internal.Controls.IGeneratorHost)owner).IsItemItsOwnContainer(_item))
wrapper = _item as UIElement;
else
wrapper = owner.ItemContainerGenerator.ContainerFromItem(_item) as UIElement;
}
return wrapper;
}
internal AutomationPeer GetWrapperPeer()
{
AutomationPeer wrapperPeer = null;
UIElement wrapper = GetWrapper();
if(wrapper != null)
{
wrapperPeer = UIElementAutomationPeer.CreatePeerForElement(wrapper);
if(wrapperPeer == null) //fall back to default peer if there is no specific one
{
if(wrapper is FrameworkElement)
wrapperPeer = new FrameworkElementAutomationPeer((FrameworkElement)wrapper);
else
wrapperPeer = new UIElementAutomationPeer(wrapper);
}
}
return wrapperPeer;
}
///
override protected string GetItemTypeCore()
{
return string.Empty;
}
///
protected override List GetChildrenCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
{
//We need to update children here since the
wrapperPeer.UpdateSubtree();
List children = wrapperPeer.GetChildren();
return children;
}
return null;
}
///
protected override Rect GetBoundingRectangleCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetBoundingRectangle();
else
return new Rect();
}
///
protected override bool IsOffscreenCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.IsOffscreen();
else
return true;
}
///
protected override AutomationOrientation GetOrientationCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetOrientation();
else
return AutomationOrientation.None;
}
///
protected override string GetItemStatusCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetItemStatus();
else
return string.Empty;
}
///
protected override bool IsRequiredForFormCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.IsRequiredForForm();
else
return false;
}
///
protected override bool IsKeyboardFocusableCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.IsKeyboardFocusable();
else
return false;
}
///
protected override bool HasKeyboardFocusCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.HasKeyboardFocus();
else
return false;
}
///
protected override bool IsEnabledCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.IsEnabled();
else
return false;
}
///
protected override bool IsPasswordCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.IsPassword();
else
return false;
}
///
protected override string GetAutomationIdCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetAutomationId();
else
return string.Empty;
}
///
protected override string GetNameCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
string name = null;
if(wrapperPeer != null)
name = wrapperPeer.GetName();
if(name == null && _item is string)
name = (string)_item;
if(name == null)
name = string.Empty;
return name;
}
///
protected override bool IsContentElementCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.IsContentElement();
else
return true;
}
///
protected override bool IsControlElementCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.IsControlElement();
else
return true;
}
///
protected override AutomationPeer GetLabeledByCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetLabeledBy();
else
return null;
}
///
protected override string GetHelpTextCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetHelpText();
else
return string.Empty;
}
///
protected override string GetAcceleratorKeyCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetAcceleratorKey();
else
return string.Empty;
}
///
protected override string GetAccessKeyCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetAccessKey();
else
return string.Empty;
}
///
protected override Point GetClickablePointCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
return wrapperPeer.GetClickablePoint();
else
return new Point(double.NaN, double.NaN);
}
///
protected override void SetFocusCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if(wrapperPeer != null)
wrapperPeer.SetFocus();
}
///
public object Item
{
get
{
return _item;
}
}
///
public ItemsControlAutomationPeer ItemsControlAutomationPeer
{
get
{
return _itemsControlAutomationPeer;
}
}
private object _item;
private ItemsControlAutomationPeer _itemsControlAutomationPeer;
}
}
// 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
- HuffCodec.cs
- WebControlAdapter.cs
- HtmlShim.cs
- UnauthorizedAccessException.cs
- X509WindowsSecurityToken.cs
- ResourceDisplayNameAttribute.cs
- ObjectStorage.cs
- ApplicationTrust.cs
- HtmlControlPersistable.cs
- BamlWriter.cs
- ImpersonationContext.cs
- RuleSetCollection.cs
- TextProviderWrapper.cs
- Scripts.cs
- BufferedStream.cs
- DiscoveryServerProtocol.cs
- MobileControlBuilder.cs
- CompoundFileIOPermission.cs
- SignedPkcs7.cs
- WebPartCatalogAddVerb.cs
- Crc32.cs
- ListViewDeleteEventArgs.cs
- UpdatePanelControlTrigger.cs
- SystemThemeKey.cs
- WebSysDescriptionAttribute.cs
- RotateTransform3D.cs
- SqlReferenceCollection.cs
- CodeBlockBuilder.cs
- QueryExecutionOption.cs
- XamlFigureLengthSerializer.cs
- DbParameterHelper.cs
- MetadataArtifactLoader.cs
- SiteMapDataSourceView.cs
- SecurityPermission.cs
- ControlBindingsCollection.cs
- ImportContext.cs
- ChtmlMobileTextWriter.cs
- ClientApiGenerator.cs
- OrderPreservingMergeHelper.cs
- ReadingWritingEntityEventArgs.cs
- ThicknessAnimationUsingKeyFrames.cs
- NonBatchDirectoryCompiler.cs
- PassportAuthenticationModule.cs
- TemplateLookupAction.cs
- SpnegoTokenAuthenticator.cs
- EdmEntityTypeAttribute.cs
- ProcessHostMapPath.cs
- EastAsianLunisolarCalendar.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- LineUtil.cs
- XPathNodeList.cs
- PathStreamGeometryContext.cs
- ManifestSignatureInformation.cs
- SystemIcmpV4Statistics.cs
- LabelLiteral.cs
- COAUTHINFO.cs
- SecureStringHasher.cs
- AggregateException.cs
- ColorMatrix.cs
- GC.cs
- WebPartCatalogCloseVerb.cs
- CodeCommentStatementCollection.cs
- QilList.cs
- CommandManager.cs
- PreservationFileWriter.cs
- IDQuery.cs
- userdatakeys.cs
- ResourceAssociationType.cs
- FontDialog.cs
- HttpValueCollection.cs
- TableRowGroup.cs
- DataRowView.cs
- ReverseQueryOperator.cs
- StdValidatorsAndConverters.cs
- TypedDataSetSchemaImporterExtension.cs
- FrameworkContentElement.cs
- CompilerParameters.cs
- TagElement.cs
- MultiTouchSystemGestureLogic.cs
- Metafile.cs
- PageParserFilter.cs
- DecimalStorage.cs
- Part.cs
- PageBuildProvider.cs
- WebPartCatalogAddVerb.cs
- FixedSOMLineCollection.cs
- figurelength.cs
- FixUp.cs
- OperandQuery.cs
- PrintController.cs
- ApplicationException.cs
- TrackingProfileCache.cs
- HtmlUtf8RawTextWriter.cs
- DataPagerFieldCommandEventArgs.cs
- EventSinkActivity.cs
- Item.cs
- ZipPackagePart.cs
- _Win32.cs
- EventManager.cs
- ConditionBrowserDialog.cs