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 ListGetChildrenCore() { 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
- ActivityTypeDesigner.xaml.cs
- RootBrowserWindowProxy.cs
- XmlCharacterData.cs
- ProjectionPruner.cs
- XamlStream.cs
- Substitution.cs
- PreservationFileReader.cs
- SmiSettersStream.cs
- ScaleTransform3D.cs
- EastAsianLunisolarCalendar.cs
- DbDataReader.cs
- RuntimeConfigurationRecord.cs
- RepeatInfo.cs
- SystemInfo.cs
- CaseInsensitiveComparer.cs
- Exception.cs
- HostAdapter.cs
- PathSegment.cs
- ECDiffieHellmanCng.cs
- UIElementParaClient.cs
- TableItemProviderWrapper.cs
- RubberbandSelector.cs
- XmlSchemaAppInfo.cs
- DrawingState.cs
- RegionInfo.cs
- ImmComposition.cs
- TemplateManager.cs
- CollectionConverter.cs
- FastEncoderWindow.cs
- UInt64Converter.cs
- DiagnosticsConfigurationHandler.cs
- AttributeProviderAttribute.cs
- Visual.cs
- ComNativeDescriptor.cs
- BinaryObjectWriter.cs
- BaseServiceProvider.cs
- SizeAnimationUsingKeyFrames.cs
- XMLSchema.cs
- InternalPermissions.cs
- EraserBehavior.cs
- ManifestResourceInfo.cs
- FilteredDataSetHelper.cs
- SoapIncludeAttribute.cs
- XmlSchemaComplexContentExtension.cs
- AsyncCompletedEventArgs.cs
- SiteMapHierarchicalDataSourceView.cs
- AbsoluteQuery.cs
- ScriptingRoleServiceSection.cs
- StaticDataManager.cs
- NoResizeSelectionBorderGlyph.cs
- ResourcesGenerator.cs
- _ScatterGatherBuffers.cs
- UpdateRecord.cs
- SetIterators.cs
- IsolatedStorage.cs
- ParameterCollection.cs
- ComplexType.cs
- IntegerValidatorAttribute.cs
- SequenceFullException.cs
- FileVersion.cs
- DynamicControlParameter.cs
- ModelTypeConverter.cs
- ContentElement.cs
- SafeNativeMethods.cs
- ActivityXRefConverter.cs
- HttpCacheVaryByContentEncodings.cs
- CompilerParameters.cs
- Action.cs
- SynchronizationContext.cs
- regiisutil.cs
- DataBindingHandlerAttribute.cs
- RectAnimationUsingKeyFrames.cs
- MergeFilterQuery.cs
- DataGridColumn.cs
- HwndHostAutomationPeer.cs
- DesignTable.cs
- EventProviderClassic.cs
- SafeEventLogWriteHandle.cs
- DropSource.cs
- HttpResponse.cs
- JoinElimination.cs
- AliasedSlot.cs
- ObjRef.cs
- ThicknessKeyFrameCollection.cs
- SoapSchemaImporter.cs
- RadioButtonRenderer.cs
- TextLineResult.cs
- LogRestartAreaEnumerator.cs
- ComboBox.cs
- SessionStateContainer.cs
- ApplicationContext.cs
- COAUTHINFO.cs
- TabItemAutomationPeer.cs
- BinHexDecoder.cs
- RawStylusInputCustomDataList.cs
- PerformanceCounters.cs
- CodeTypeDeclarationCollection.cs
- SystemInformation.cs
- BaseInfoTable.cs
- SpotLight.cs