Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Automation / Peers / ComboBoxAutomationPeer.cs / 1 / ComboBoxAutomationPeer.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 ComboBoxAutomationPeer: SelectorAutomationPeer, IValueProvider, IExpandCollapseProvider { /// public ComboBoxAutomationPeer(ComboBox owner): base(owner) {} /// override protected ItemAutomationPeer CreateItemAutomationPeer(object item) { // Use the same peer as ListBox return new ListBoxItemAutomationPeer(item, this); } /// override protected AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.ComboBox; } /// override protected string GetClassNameCore() { return "ComboBox"; } /// override public object GetPattern(PatternInterface pattern) { object iface = null; if (pattern == PatternInterface.Value) { ComboBox owner = (ComboBox)Owner; if (owner.IsEditable) iface = this; } else if(pattern == PatternInterface.ExpandCollapse) { iface = this; } else { iface = base.GetPattern(pattern); } return iface; } /// protected override ListGetChildrenCore() { List children = base.GetChildrenCore(); // include text box part into children collection ComboBox owner = (ComboBox)Owner; TextBox textBox = owner.EditableTextBoxSite; if (textBox != null) { AutomationPeer peer = UIElementAutomationPeer.CreatePeerForElement(textBox); if (peer != null) { if (children == null) children = new List (); children.Insert(0, peer); } } return children; } #region Value /// /// Request to set the value that this UI element is representing /// /// Value to set the UI to, as an object ///true if the UI element was successfully set to the specified value //[CodeAnalysis("AptcaMethodsShouldOnlyCallAptcaMethods")] //Tracking Bug: 29647 void IValueProvider.SetValue(string val) { if (val == null) throw new ArgumentNullException("val"); ComboBox owner = (ComboBox)Owner; if (!owner.IsEnabled) throw new ElementNotEnabledException(); owner.Text = val; } ///Value of a value control, as a a string. string IValueProvider.Value { get { return ((ComboBox)(((ComboBoxAutomationPeer)this).Owner)).Text; } } ///Indicates that the value can only be read, not modified. ///returns True if the control is read-only bool IValueProvider.IsReadOnly { get { ComboBox owner = (ComboBox)Owner; return !owner.IsEnabled || owner.IsReadOnly; } } #endregion Value #region ExpandCollapse ////// Blocking method that returns after the element has been expanded. /// ///true if the node was successfully expanded void IExpandCollapseProvider.Expand() { if(!IsEnabled()) throw new ElementNotEnabledException(); ComboBox owner = (ComboBox)((ComboBoxAutomationPeer)this).Owner; owner.IsDropDownOpen = true; } ////// Blocking method that returns after the element has been collapsed. /// ///true if the node was successfully collapsed void IExpandCollapseProvider.Collapse() { if(!IsEnabled()) throw new ElementNotEnabledException(); ComboBox owner = (ComboBox)((ComboBoxAutomationPeer)this).Owner; owner.IsDropDownOpen = false; } ///indicates an element's current Collapsed or Expanded state ExpandCollapseState IExpandCollapseProvider.ExpandCollapseState { get { ComboBox owner = (ComboBox)((ComboBoxAutomationPeer)this).Owner; return owner.IsDropDownOpen ? ExpandCollapseState.Expanded : ExpandCollapseState.Collapsed; } } // [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); } #endregion ExpandCollapse } } // 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
- BitmapEffectInput.cs
- BinaryUtilClasses.cs
- Rotation3D.cs
- WebPartConnectionsCancelEventArgs.cs
- CanonicalFontFamilyReference.cs
- DependencyPropertyHelper.cs
- NullableLongAverageAggregationOperator.cs
- ClientRequest.cs
- MenuRendererStandards.cs
- IdnMapping.cs
- ListenerElementsCollection.cs
- WebConfigurationHostFileChange.cs
- DataGridViewAccessibleObject.cs
- KeyManager.cs
- PerformanceCountersElement.cs
- StrokeNodeOperations2.cs
- HttpProfileGroupBase.cs
- HttpRuntime.cs
- StringWriter.cs
- IPCCacheManager.cs
- MdiWindowListItemConverter.cs
- ObjectDataSourceSelectingEventArgs.cs
- QueryOperator.cs
- DataServiceResponse.cs
- NameScope.cs
- MobileTextWriter.cs
- EventMetadata.cs
- mongolianshape.cs
- TreeView.cs
- ContextMenu.cs
- ValidateNames.cs
- BaseAppDomainProtocolHandler.cs
- WebPartZoneDesigner.cs
- WebResourceUtil.cs
- StringFreezingAttribute.cs
- ConfigXmlSignificantWhitespace.cs
- XmlReader.cs
- JournalEntryListConverter.cs
- MenuAdapter.cs
- ImageMapEventArgs.cs
- _NtlmClient.cs
- Renderer.cs
- Converter.cs
- RuntimeResourceSet.cs
- TemplateBindingExpressionConverter.cs
- SignedXml.cs
- ToolStripScrollButton.cs
- BrushConverter.cs
- DelegatingTypeDescriptionProvider.cs
- CodeObjectCreateExpression.cs
- UnsafePeerToPeerMethods.cs
- PositiveTimeSpanValidatorAttribute.cs
- TdsParameterSetter.cs
- InheritanceRules.cs
- KerberosSecurityTokenProvider.cs
- TextRunTypographyProperties.cs
- path.cs
- SettingsProperty.cs
- DataRecordInternal.cs
- ConfigViewGenerator.cs
- ClientScriptItem.cs
- ColumnHeader.cs
- XhtmlTextWriter.cs
- NumberFormatInfo.cs
- Type.cs
- SamlNameIdentifierClaimResource.cs
- Point4DConverter.cs
- ConnectorDragDropGlyph.cs
- WorkflowInstanceQuery.cs
- DataSetMappper.cs
- CaretElement.cs
- PlatformCulture.cs
- GAC.cs
- CodeSnippetCompileUnit.cs
- XPathNodeInfoAtom.cs
- EventlogProvider.cs
- TableRowGroup.cs
- HttpBindingExtension.cs
- RelatedView.cs
- DependencyPropertyValueSerializer.cs
- WebPartCatalogCloseVerb.cs
- OleDbException.cs
- DeclarationUpdate.cs
- RelatedImageListAttribute.cs
- WsatConfiguration.cs
- ValueChangedEventManager.cs
- ScriptMethodAttribute.cs
- validationstate.cs
- ItemAutomationPeer.cs
- TraceListener.cs
- Span.cs
- XmlObjectSerializerContext.cs
- HttpAsyncResult.cs
- HttpHeaderCollection.cs
- MailWriter.cs
- HtmlInputFile.cs
- Metafile.cs
- DBBindings.cs
- MaterializeFromAtom.cs
- SyndicationSerializer.cs