Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Automation / Peers / TreeViewItemAutomationPeer.cs / 1 / TreeViewItemAutomationPeer.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 class TreeViewItemAutomationPeer : FrameworkElementAutomationPeer, IExpandCollapseProvider, ISelectionItemProvider, IScrollItemProvider
{
///
public TreeViewItemAutomationPeer(TreeViewItem owner): base(owner)
{
}
///
override protected string GetClassNameCore()
{
return "TreeViewItem";
}
///
override protected AutomationControlType GetAutomationControlTypeCore()
{
return AutomationControlType.TreeItem;
}
///
override public object GetPattern(PatternInterface patternInterface)
{
if (patternInterface == PatternInterface.ExpandCollapse)
{
return this;
}
else if (patternInterface == PatternInterface.SelectionItem)
{
return this;
}
else if (patternInterface == PatternInterface.ScrollItem)
{
return this;
}
return null;
}
///
void IExpandCollapseProvider.Expand()
{
if(!IsEnabled())
throw new ElementNotEnabledException();
TreeViewItem treeViewItem = (TreeViewItem)Owner;
if (!treeViewItem.HasItems)
{
throw new InvalidOperationException(SR.Get(SRID.UIA_OperationCannotBePerformed));
}
treeViewItem.IsExpanded = true;
}
///
void IExpandCollapseProvider.Collapse()
{
if(!IsEnabled())
throw new ElementNotEnabledException();
TreeViewItem treeViewItem = (TreeViewItem)Owner;
if (!treeViewItem.HasItems)
{
throw new InvalidOperationException(SR.Get(SRID.UIA_OperationCannotBePerformed));
}
treeViewItem.IsExpanded = false;
}
ExpandCollapseState IExpandCollapseProvider.ExpandCollapseState
{
get
{
TreeViewItem treeViewItem = (TreeViewItem)Owner;
if (treeViewItem.HasItems)
return treeViewItem.IsExpanded ? ExpandCollapseState.Expanded : ExpandCollapseState.Collapsed;
else
return ExpandCollapseState.LeafNode;
}
}
//
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
internal void RaiseExpandCollapseAutomationEvent(bool oldValue, bool newValue)
{
RaisePropertyChangedEvent(
ExpandCollapsePatternIdentifiers.ExpandCollapseStateProperty,
oldValue ? ExpandCollapseState.Expanded : ExpandCollapseState.Collapsed,
newValue ? ExpandCollapseState.Expanded : ExpandCollapseState.Collapsed);
}
#region ISelectionItemProvider
///
/// Selects this element, removing any other element from the selection.
///
void ISelectionItemProvider.Select()
{
((TreeViewItem)Owner).IsSelected = true;
}
///
/// Selects this item.
///
void ISelectionItemProvider.AddToSelection()
{
TreeView treeView = ((TreeViewItem)Owner).ParentTreeView;
// If TreeView already has a selected item different from current - we cannot add to selection and throw
if (treeView == null || (treeView.SelectedItem != null && treeView.SelectedContainer != Owner))
{
throw new InvalidOperationException(SR.Get(SRID.UIA_OperationCannotBePerformed));
}
((TreeViewItem)Owner).IsSelected = true;
}
///
/// Unselects this item.
///
void ISelectionItemProvider.RemoveFromSelection()
{
((TreeViewItem)Owner).IsSelected = false;
}
///
/// Returns whether the item is selected.
///
bool ISelectionItemProvider.IsSelected
{
get
{
return ((TreeViewItem)Owner).IsSelected;
}
}
///
/// The logical element that supports the SelectionPattern for this item.
///
IRawElementProviderSimple ISelectionItemProvider.SelectionContainer
{
get
{
ItemsControl parent = ((TreeViewItem)Owner).ParentItemsControl;
if (parent != null)
{
AutomationPeer peer = UIElementAutomationPeer.FromElement(parent);
if (peer != null)
return ProviderFromPeer(peer);
}
return null;
}
}
void IScrollItemProvider.ScrollIntoView()
{
((TreeViewItem)Owner).BringIntoView();
}
//
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
internal void RaiseAutomationIsSelectedChanged(bool isSelected)
{
RaisePropertyChangedEvent(
SelectionItemPatternIdentifiers.IsSelectedProperty,
!isSelected,
isSelected);
}
#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
- CharUnicodeInfo.cs
- ImageBrush.cs
- ControlBindingsCollection.cs
- ContentPathSegment.cs
- HttpCookiesSection.cs
- WindowsTokenRoleProvider.cs
- EventLogEntryCollection.cs
- XsdDateTime.cs
- BevelBitmapEffect.cs
- MembershipUser.cs
- lengthconverter.cs
- PermissionListSet.cs
- DataProviderNameConverter.cs
- JsonUriDataContract.cs
- RunClient.cs
- DispatchChannelSink.cs
- ScriptResourceHandler.cs
- SmiXetterAccessMap.cs
- IndentedWriter.cs
- RequestCacheValidator.cs
- RtfToXamlReader.cs
- ContainerActivationHelper.cs
- PointLight.cs
- HtmlDocument.cs
- Certificate.cs
- ControlFilterExpression.cs
- ViewEventArgs.cs
- OdbcConnectionPoolProviderInfo.cs
- MimeMapping.cs
- ControlIdConverter.cs
- SqlConnection.cs
- DataGridViewAdvancedBorderStyle.cs
- LeftCellWrapper.cs
- WinEventHandler.cs
- FilteredAttributeCollection.cs
- SecurityRuntime.cs
- ChtmlTextWriter.cs
- ImageButton.cs
- JournalEntryStack.cs
- FirewallWrapper.cs
- WmlValidatorAdapter.cs
- ConfigXmlComment.cs
- DependencyObjectCodeDomSerializer.cs
- InstancePersistenceCommand.cs
- AssociatedControlConverter.cs
- CodeSnippetTypeMember.cs
- OleDbRowUpdatedEvent.cs
- SmiSettersStream.cs
- PerspectiveCamera.cs
- CompilerCollection.cs
- exports.cs
- Transform3DGroup.cs
- SecurityKeyIdentifier.cs
- AmbiguousMatchException.cs
- XmlReflectionImporter.cs
- ScalarType.cs
- Size3D.cs
- Pen.cs
- MenuItemBinding.cs
- MetadataProperty.cs
- LambdaValue.cs
- xmlformatgeneratorstatics.cs
- StrongTypingException.cs
- Rotation3DKeyFrameCollection.cs
- ObjectPersistData.cs
- NotifyCollectionChangedEventArgs.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- SspiSafeHandles.cs
- Axis.cs
- VersionConverter.cs
- ScriptingSectionGroup.cs
- DataPagerFieldCollection.cs
- Substitution.cs
- MD5CryptoServiceProvider.cs
- KerberosReceiverSecurityToken.cs
- AddInActivator.cs
- ArrangedElementCollection.cs
- ScriptReference.cs
- NamespaceList.cs
- EntityDataSourceColumn.cs
- MatrixTransform3D.cs
- DynamicQueryableWrapper.cs
- FormatConvertedBitmap.cs
- peersecurityelement.cs
- Triplet.cs
- AuthenticationModuleElementCollection.cs
- ECDsa.cs
- ImageAnimator.cs
- ServerIdentity.cs
- CounterCreationDataCollection.cs
- TableParaClient.cs
- ByteStorage.cs
- RecordConverter.cs
- ListItemCollection.cs
- TextBox.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- RoutedCommand.cs
- SecurityDescriptor.cs
- _SslStream.cs
- CollectionContainer.cs