Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Automation / Peers / DataGridColumnHeaderItemAutomationPeer.cs / 1305600 / DataGridColumnHeaderItemAutomationPeer.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Automation.Provider;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
namespace System.Windows.Automation.Peers
{
///
/// Automation Peer for DataGridHeader
///
public class DataGridColumnHeaderItemAutomationPeer : ItemAutomationPeer,
IInvokeProvider, IScrollItemProvider, ITransformProvider, IVirtualizedItemProvider
{
public DataGridColumnHeaderItemAutomationPeer(object item, DataGridColumn column, DataGridColumnHeadersPresenterAutomationPeer peer)
:base(item, peer)
{
_column = column;
}
#region AutomationPeer Overrides
///
/// Gets the control type for the element that is associated with the UI Automation peer.
///
/// The control type.
protected override AutomationControlType GetAutomationControlTypeCore()
{
return AutomationControlType.HeaderItem;
}
///
/// Called by GetClassName that gets a human readable name that, in addition to AutomationControlType,
/// differentiates the control represented by this AutomationPeer.
///
/// The string that contains the name.
protected override string GetClassNameCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if (wrapperPeer != null)
{
return wrapperPeer.GetClassName();
}
else
{
ThrowElementNotAvailableException();
}
return String.Empty;
}
///
/// Gets the control pattern that is associated with the specified System.Windows.Automation.Peers.PatternInterface.
///
/// A value from the System.Windows.Automation.Peers.PatternInterface enumeration.
/// The object that supports the specified pattern, or null if unsupported.
public override object GetPattern(PatternInterface patternInterface)
{
switch (patternInterface)
{
case PatternInterface.Invoke:
{
if (Column != null && Column.CanUserSort)
{
return this;
}
break;
}
case PatternInterface.ScrollItem:
{
if (Column != null)
{
return this;
}
break;
}
case PatternInterface.Transform:
{
if (Column != null && Column.CanUserResize)
{
return this;
}
break;
}
case PatternInterface.VirtualizedItem:
{
if (Column != null)
{
return this;
}
break;
}
}
return null;
}
///
/// Gets a value that specifies whether the element is a content element.
///
/// true if the element is a content element; otherwise false
protected override bool IsContentElementCore()
{
return false;
}
#endregion
#region IInvokeProvider
void IInvokeProvider.Invoke()
{
UIElementAutomationPeer wrapperPeer = GetWrapperPeer() as UIElementAutomationPeer;
if (wrapperPeer != null)
{
((DataGridColumnHeader)wrapperPeer.Owner).Invoke();
}
else
ThrowElementNotAvailableException();
}
#endregion
#region IScrollItemProvider
void IScrollItemProvider.ScrollIntoView()
{
if (Column != null && this.OwningDataGrid != null)
{
this.OwningDataGrid.ScrollIntoView(null, Column);
}
}
#endregion
#region ITransformProvider
bool ITransformProvider.CanMove
{
get
{
return false;
}
}
bool ITransformProvider.CanResize
{
get
{
if (this.Column != null)
return Column.CanUserResize;
return false;
}
}
bool ITransformProvider.CanRotate
{
get
{
return false;
}
}
void ITransformProvider.Move(double x, double y)
{
throw new InvalidOperationException(SR.Get(SRID.DataGridColumnHeaderItemAutomationPeer_Unsupported));
}
void ITransformProvider.Resize(double width, double height)
{
if (this.OwningDataGrid != null && Column.CanUserResize)
{
Column.Width = new DataGridLength(width);
}
else
{
throw new InvalidOperationException(SR.Get(SRID.DataGridColumnHeaderItemAutomationPeer_Unresizable));
}
}
void ITransformProvider.Rotate(double degrees)
{
throw new InvalidOperationException(SR.Get(SRID.DataGridColumnHeaderItemAutomationPeer_Unsupported));
}
#endregion
#region IVirtualizedItemProvider
void IVirtualizedItemProvider.Realize()
{
if (this.OwningDataGrid != null)
OwningDataGrid.ScrollIntoView(null,Column);
}
#endregion
#region Properties
internal override bool AncestorsInvalid
{
get { return base.AncestorsInvalid; }
set
{
base.AncestorsInvalid = value;
if (value)
return;
AutomationPeer wrapperPeer = OwningColumnHeaderPeer;
if (wrapperPeer != null)
{
wrapperPeer.AncestorsInvalid = false;
}
}
}
internal DataGridColumnHeader OwningHeader
{
get
{
return GetWrapper() as DataGridColumnHeader;
}
}
internal DataGrid OwningDataGrid
{
get
{
return Column.DataGridOwner;
}
}
internal DataGridColumn Column
{
get { return _column; }
}
internal DataGridColumnHeaderAutomationPeer OwningColumnHeaderPeer
{
get
{
return GetWrapperPeer() as DataGridColumnHeaderAutomationPeer;
}
}
#endregion
#region Private Variables
DataGridColumn _column;
#endregion
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Automation.Provider;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
namespace System.Windows.Automation.Peers
{
///
/// Automation Peer for DataGridHeader
///
public class DataGridColumnHeaderItemAutomationPeer : ItemAutomationPeer,
IInvokeProvider, IScrollItemProvider, ITransformProvider, IVirtualizedItemProvider
{
public DataGridColumnHeaderItemAutomationPeer(object item, DataGridColumn column, DataGridColumnHeadersPresenterAutomationPeer peer)
:base(item, peer)
{
_column = column;
}
#region AutomationPeer Overrides
///
/// Gets the control type for the element that is associated with the UI Automation peer.
///
/// The control type.
protected override AutomationControlType GetAutomationControlTypeCore()
{
return AutomationControlType.HeaderItem;
}
///
/// Called by GetClassName that gets a human readable name that, in addition to AutomationControlType,
/// differentiates the control represented by this AutomationPeer.
///
/// The string that contains the name.
protected override string GetClassNameCore()
{
AutomationPeer wrapperPeer = GetWrapperPeer();
if (wrapperPeer != null)
{
return wrapperPeer.GetClassName();
}
else
{
ThrowElementNotAvailableException();
}
return String.Empty;
}
///
/// Gets the control pattern that is associated with the specified System.Windows.Automation.Peers.PatternInterface.
///
/// A value from the System.Windows.Automation.Peers.PatternInterface enumeration.
/// The object that supports the specified pattern, or null if unsupported.
public override object GetPattern(PatternInterface patternInterface)
{
switch (patternInterface)
{
case PatternInterface.Invoke:
{
if (Column != null && Column.CanUserSort)
{
return this;
}
break;
}
case PatternInterface.ScrollItem:
{
if (Column != null)
{
return this;
}
break;
}
case PatternInterface.Transform:
{
if (Column != null && Column.CanUserResize)
{
return this;
}
break;
}
case PatternInterface.VirtualizedItem:
{
if (Column != null)
{
return this;
}
break;
}
}
return null;
}
///
/// Gets a value that specifies whether the element is a content element.
///
/// true if the element is a content element; otherwise false
protected override bool IsContentElementCore()
{
return false;
}
#endregion
#region IInvokeProvider
void IInvokeProvider.Invoke()
{
UIElementAutomationPeer wrapperPeer = GetWrapperPeer() as UIElementAutomationPeer;
if (wrapperPeer != null)
{
((DataGridColumnHeader)wrapperPeer.Owner).Invoke();
}
else
ThrowElementNotAvailableException();
}
#endregion
#region IScrollItemProvider
void IScrollItemProvider.ScrollIntoView()
{
if (Column != null && this.OwningDataGrid != null)
{
this.OwningDataGrid.ScrollIntoView(null, Column);
}
}
#endregion
#region ITransformProvider
bool ITransformProvider.CanMove
{
get
{
return false;
}
}
bool ITransformProvider.CanResize
{
get
{
if (this.Column != null)
return Column.CanUserResize;
return false;
}
}
bool ITransformProvider.CanRotate
{
get
{
return false;
}
}
void ITransformProvider.Move(double x, double y)
{
throw new InvalidOperationException(SR.Get(SRID.DataGridColumnHeaderItemAutomationPeer_Unsupported));
}
void ITransformProvider.Resize(double width, double height)
{
if (this.OwningDataGrid != null && Column.CanUserResize)
{
Column.Width = new DataGridLength(width);
}
else
{
throw new InvalidOperationException(SR.Get(SRID.DataGridColumnHeaderItemAutomationPeer_Unresizable));
}
}
void ITransformProvider.Rotate(double degrees)
{
throw new InvalidOperationException(SR.Get(SRID.DataGridColumnHeaderItemAutomationPeer_Unsupported));
}
#endregion
#region IVirtualizedItemProvider
void IVirtualizedItemProvider.Realize()
{
if (this.OwningDataGrid != null)
OwningDataGrid.ScrollIntoView(null,Column);
}
#endregion
#region Properties
internal override bool AncestorsInvalid
{
get { return base.AncestorsInvalid; }
set
{
base.AncestorsInvalid = value;
if (value)
return;
AutomationPeer wrapperPeer = OwningColumnHeaderPeer;
if (wrapperPeer != null)
{
wrapperPeer.AncestorsInvalid = false;
}
}
}
internal DataGridColumnHeader OwningHeader
{
get
{
return GetWrapper() as DataGridColumnHeader;
}
}
internal DataGrid OwningDataGrid
{
get
{
return Column.DataGridOwner;
}
}
internal DataGridColumn Column
{
get { return _column; }
}
internal DataGridColumnHeaderAutomationPeer OwningColumnHeaderPeer
{
get
{
return GetWrapperPeer() as DataGridColumnHeaderAutomationPeer;
}
}
#endregion
#region Private Variables
DataGridColumn _column;
#endregion
}
}
// 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
- SplineKeyFrames.cs
- Viewport3DAutomationPeer.cs
- CroppedBitmap.cs
- XMLUtil.cs
- OptionalMessageQuery.cs
- DispatcherTimer.cs
- Interlocked.cs
- RijndaelCryptoServiceProvider.cs
- SchemaNotation.cs
- GridViewEditEventArgs.cs
- PeerCollaboration.cs
- MaterialGroup.cs
- x509store.cs
- Vector3dCollection.cs
- DataSourceXmlClassAttribute.cs
- PropertyItem.cs
- PropertyInfoSet.cs
- PageSettings.cs
- PluralizationServiceUtil.cs
- ManipulationVelocities.cs
- SimpleHandlerBuildProvider.cs
- IResourceProvider.cs
- QueryContext.cs
- RijndaelManagedTransform.cs
- Color.cs
- SlipBehavior.cs
- PropertyValueUIItem.cs
- AccessedThroughPropertyAttribute.cs
- SmiXetterAccessMap.cs
- PropertyDescriptorCollection.cs
- HttpDebugHandler.cs
- CodeEntryPointMethod.cs
- ListSourceHelper.cs
- TreeView.cs
- OwnerDrawPropertyBag.cs
- HexParser.cs
- Constants.cs
- ObjectDataSourceChooseMethodsPanel.cs
- cookiecontainer.cs
- Normalizer.cs
- CrossSiteScriptingValidation.cs
- SqlError.cs
- DocumentSchemaValidator.cs
- ReceiveDesigner.xaml.cs
- BamlLocalizer.cs
- TextWriter.cs
- TimestampInformation.cs
- HtmlTextViewAdapter.cs
- CopyAttributesAction.cs
- CommonGetThemePartSize.cs
- MDIWindowDialog.cs
- ExpressionBuilder.cs
- SynchronizationContext.cs
- SspiNegotiationTokenAuthenticator.cs
- ButtonChrome.cs
- RectIndependentAnimationStorage.cs
- ShutDownListener.cs
- Queue.cs
- AdRotator.cs
- PerformanceCounterNameAttribute.cs
- EdmValidator.cs
- base64Transforms.cs
- OdbcConnectionString.cs
- GenericAuthenticationEventArgs.cs
- filewebresponse.cs
- sitestring.cs
- RightsManagementPermission.cs
- StylusCollection.cs
- SingleAnimationBase.cs
- TdsParserHelperClasses.cs
- InvokeProviderWrapper.cs
- ObjectConverter.cs
- mediaeventshelper.cs
- StickyNoteContentControl.cs
- CachedPathData.cs
- XmlBoundElement.cs
- EventsTab.cs
- SystemKeyConverter.cs
- IDReferencePropertyAttribute.cs
- RijndaelManaged.cs
- PathSegmentCollection.cs
- AssemblyBuilder.cs
- HttpListenerRequest.cs
- PersonalizationDictionary.cs
- CaseInsensitiveOrdinalStringComparer.cs
- WorkflowRuntimeService.cs
- SchemaElement.cs
- WindowsGraphics.cs
- PromptEventArgs.cs
- DataColumnMapping.cs
- WinFormsComponentEditor.cs
- ColorTransform.cs
- RelationshipConstraintValidator.cs
- StaticTextPointer.cs
- DefaultAuthorizationContext.cs
- VerificationException.cs
- UriTemplateTrieLocation.cs
- ParenthesizePropertyNameAttribute.cs
- TextElementCollectionHelper.cs
- StringSorter.cs