Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LoginView.cs
- InvalidPropValue.cs
- IgnoreSectionHandler.cs
- TraceSource.cs
- DatatypeImplementation.cs
- CryptoHelper.cs
- FontStretches.cs
- ModifierKeysValueSerializer.cs
- DoubleAnimationUsingPath.cs
- Cursors.cs
- RegistrationServices.cs
- DefaultValueConverter.cs
- HostVisual.cs
- NavigationEventArgs.cs
- Clock.cs
- DbQueryCommandTree.cs
- PointConverter.cs
- WebPartMenu.cs
- ImpersonationContext.cs
- KerberosTicketHashIdentifierClause.cs
- TlsnegoTokenProvider.cs
- DefaultExpressionVisitor.cs
- MemoryRecordBuffer.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- WebConfigurationManager.cs
- DoubleCollectionConverter.cs
- FileDialogCustomPlace.cs
- ResourceDescriptionAttribute.cs
- InkPresenter.cs
- SingleTagSectionHandler.cs
- _SslStream.cs
- SessionEndedEventArgs.cs
- PriorityQueue.cs
- AdornerHitTestResult.cs
- odbcmetadatacollectionnames.cs
- _ConnectionGroup.cs
- WebPartConnectionsCancelEventArgs.cs
- ToolStripScrollButton.cs
- ContextMenuService.cs
- XmlLanguage.cs
- SystemInfo.cs
- ToolStripItemBehavior.cs
- WindowsComboBox.cs
- IsolatedStoragePermission.cs
- CompilationPass2TaskInternal.cs
- WindowCollection.cs
- TreeViewTemplateSelector.cs
- SystemResourceKey.cs
- SqlBulkCopyColumnMapping.cs
- ProcessModule.cs
- Column.cs
- EventProperty.cs
- CardSpaceSelector.cs
- SamlEvidence.cs
- KeyEvent.cs
- CacheAxisQuery.cs
- TreeViewItem.cs
- MetadataArtifactLoaderCompositeResource.cs
- WebRequestModuleElement.cs
- MimeTypeMapper.cs
- ServiceParser.cs
- UnicodeEncoding.cs
- PolicyValidationException.cs
- CustomAttributeBuilder.cs
- RuntimeResourceSet.cs
- ModulesEntry.cs
- TransformedBitmap.cs
- DesignTimeVisibleAttribute.cs
- sqlser.cs
- DesignerProperties.cs
- CompressStream.cs
- dataobject.cs
- Bits.cs
- ViewStateModeByIdAttribute.cs
- StrokeSerializer.cs
- XPathSingletonIterator.cs
- StringUtil.cs
- SurrogateChar.cs
- DataGridViewRowHeaderCell.cs
- DataControlFieldTypeEditor.cs
- DataBoundControlParameterTarget.cs
- BaseCodePageEncoding.cs
- SafeTimerHandle.cs
- PrimitiveSchema.cs
- MetadataItemEmitter.cs
- DesignerCategoryAttribute.cs
- AsyncResult.cs
- ScriptResourceHandler.cs
- HTTPNotFoundHandler.cs
- FixedDSBuilder.cs
- InputLanguageSource.cs
- FormsAuthenticationTicket.cs
- MethodToken.cs
- AQNBuilder.cs
- ContainerControl.cs
- followingquery.cs
- BrushMappingModeValidation.cs
- BaseDataList.cs
- CmsInterop.cs
- StateValidator.cs