Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Automation / Peers / DatePickerAutomationPeer.cs / 1305600 / DatePickerAutomationPeer.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System.Collections.Generic; using System.Windows.Automation; using System.Windows.Automation.Provider; using System.Windows.Controls; namespace System.Windows.Automation.Peers { ////// AutomationPeer for DatePicker Control /// public sealed class DatePickerAutomationPeer : FrameworkElementAutomationPeer, IExpandCollapseProvider, IValueProvider { ////// Initializes a new instance of the AutomationPeer for DatePicker control. /// /// DatePicker public DatePickerAutomationPeer(DatePicker owner) : base(owner) { } #region Private Properties private DatePicker OwningDatePicker { get { return this.Owner as DatePicker; } } #endregion Private Properties #region Public Methods ////// 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) { if (patternInterface == PatternInterface.ExpandCollapse || patternInterface == PatternInterface.Value) { return this; } return base.GetPattern(patternInterface); } #endregion Public Methods #region Protected Methods protected override void SetFocusCore() { DatePicker owner = OwningDatePicker; if (owner.Focusable) { if (!owner.Focus()) { TextBox tb = owner.TextBox; //The focus should have gone to the TextBox inside DatePicker if (tb == null || !tb.IsKeyboardFocused) { throw new InvalidOperationException(SR.Get(SRID.SetFocusFailed)); } } } else { throw new InvalidOperationException(SR.Get(SRID.SetFocusFailed)); } } ////// Gets the control type for the element that is associated with the UI Automation peer. /// ///The control type. protected override AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.Custom; } protected override ListGetChildrenCore() { List children = base.GetChildrenCore(); if (OwningDatePicker.IsDropDownOpen && OwningDatePicker.Calendar != null) { CalendarAutomationPeer peer = UIElementAutomationPeer.CreatePeerForElement(OwningDatePicker.Calendar) as CalendarAutomationPeer; if (peer != null) { children.Add(peer); } } return children; } /// /// 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() { return Owner.GetType().Name; } ////// Overrides the GetLocalizedControlTypeCore method for DatePicker /// ///protected override string GetLocalizedControlTypeCore() { return SR.Get(SRID.DatePickerAutomationPeer_LocalizedControlType); } #endregion Protected Methods #region IExpandCollapseProvider ExpandCollapseState IExpandCollapseProvider.ExpandCollapseState { get { if (this.OwningDatePicker.IsDropDownOpen) { return ExpandCollapseState.Expanded; } else { return ExpandCollapseState.Collapsed; } } } void IExpandCollapseProvider.Collapse() { this.OwningDatePicker.IsDropDownOpen = false; } void IExpandCollapseProvider.Expand() { this.OwningDatePicker.IsDropDownOpen = true; } #endregion IExpandCollapseProvider #region IValueProvider bool IValueProvider.IsReadOnly { get { return false; } } string IValueProvider.Value { get { return this.OwningDatePicker.ToString(); } } void IValueProvider.SetValue(string value) { this.OwningDatePicker.Text = value; } #endregion IValueProvider #region Internal Methods // Never inline, as we don't want to unnecessarily link the automation DLL [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] internal void RaiseValuePropertyChangedEvent(string oldValue, string newValue) { if (oldValue != newValue) { RaisePropertyChangedEvent(ValuePatternIdentifiers.ValueProperty, oldValue, newValue); } } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System.Collections.Generic; using System.Windows.Automation; using System.Windows.Automation.Provider; using System.Windows.Controls; namespace System.Windows.Automation.Peers { /// /// AutomationPeer for DatePicker Control /// public sealed class DatePickerAutomationPeer : FrameworkElementAutomationPeer, IExpandCollapseProvider, IValueProvider { ////// Initializes a new instance of the AutomationPeer for DatePicker control. /// /// DatePicker public DatePickerAutomationPeer(DatePicker owner) : base(owner) { } #region Private Properties private DatePicker OwningDatePicker { get { return this.Owner as DatePicker; } } #endregion Private Properties #region Public Methods ////// 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) { if (patternInterface == PatternInterface.ExpandCollapse || patternInterface == PatternInterface.Value) { return this; } return base.GetPattern(patternInterface); } #endregion Public Methods #region Protected Methods protected override void SetFocusCore() { DatePicker owner = OwningDatePicker; if (owner.Focusable) { if (!owner.Focus()) { TextBox tb = owner.TextBox; //The focus should have gone to the TextBox inside DatePicker if (tb == null || !tb.IsKeyboardFocused) { throw new InvalidOperationException(SR.Get(SRID.SetFocusFailed)); } } } else { throw new InvalidOperationException(SR.Get(SRID.SetFocusFailed)); } } ////// Gets the control type for the element that is associated with the UI Automation peer. /// ///The control type. protected override AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.Custom; } protected override ListGetChildrenCore() { List children = base.GetChildrenCore(); if (OwningDatePicker.IsDropDownOpen && OwningDatePicker.Calendar != null) { CalendarAutomationPeer peer = UIElementAutomationPeer.CreatePeerForElement(OwningDatePicker.Calendar) as CalendarAutomationPeer; if (peer != null) { children.Add(peer); } } return children; } /// /// 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() { return Owner.GetType().Name; } ////// Overrides the GetLocalizedControlTypeCore method for DatePicker /// ///protected override string GetLocalizedControlTypeCore() { return SR.Get(SRID.DatePickerAutomationPeer_LocalizedControlType); } #endregion Protected Methods #region IExpandCollapseProvider ExpandCollapseState IExpandCollapseProvider.ExpandCollapseState { get { if (this.OwningDatePicker.IsDropDownOpen) { return ExpandCollapseState.Expanded; } else { return ExpandCollapseState.Collapsed; } } } void IExpandCollapseProvider.Collapse() { this.OwningDatePicker.IsDropDownOpen = false; } void IExpandCollapseProvider.Expand() { this.OwningDatePicker.IsDropDownOpen = true; } #endregion IExpandCollapseProvider #region IValueProvider bool IValueProvider.IsReadOnly { get { return false; } } string IValueProvider.Value { get { return this.OwningDatePicker.ToString(); } } void IValueProvider.SetValue(string value) { this.OwningDatePicker.Text = value; } #endregion IValueProvider #region Internal Methods // Never inline, as we don't want to unnecessarily link the automation DLL [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] internal void RaiseValuePropertyChangedEvent(string oldValue, string newValue) { if (oldValue != newValue) { RaisePropertyChangedEvent(ValuePatternIdentifiers.ValueProperty, oldValue, newValue); } } #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
- _ChunkParse.cs
- EncryptedKey.cs
- EmptyCollection.cs
- grammarelement.cs
- GridViewRowEventArgs.cs
- Verify.cs
- RequestDescription.cs
- PermissionListSet.cs
- XmlWrappingReader.cs
- CompensateDesigner.cs
- MediaPlayer.cs
- Trace.cs
- ListViewPagedDataSource.cs
- RemotingServices.cs
- SrgsElementFactoryCompiler.cs
- VectorCollectionConverter.cs
- SiteMapSection.cs
- TableLayoutRowStyleCollection.cs
- QuadraticBezierSegment.cs
- PlainXmlWriter.cs
- IItemProperties.cs
- FillRuleValidation.cs
- Serializer.cs
- PersonalizationProvider.cs
- ItemCheckedEvent.cs
- ActiveDesignSurfaceEvent.cs
- WebPartEventArgs.cs
- ConsumerConnectionPoint.cs
- UrlPath.cs
- BooleanStorage.cs
- AppDomainUnloadedException.cs
- DataObjectFieldAttribute.cs
- XmlReaderSettings.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- ModelUIElement3D.cs
- LightweightCodeGenerator.cs
- ImageIndexConverter.cs
- SecurityProtocolCorrelationState.cs
- ExpressionBindingCollection.cs
- SimpleBitVector32.cs
- RoutedUICommand.cs
- EventMappingSettings.cs
- ListDictionary.cs
- ClientSideProviderDescription.cs
- DataGridDesigner.cs
- EntityModelBuildProvider.cs
- InstanceOwner.cs
- XPathScanner.cs
- CodeSubDirectory.cs
- StackBuilderSink.cs
- BaseHashHelper.cs
- MdiWindowListItemConverter.cs
- PerformanceCounterLib.cs
- OneOfConst.cs
- TimeStampChecker.cs
- UIElementParagraph.cs
- StreamReader.cs
- SettingsAttributeDictionary.cs
- MetaTable.cs
- MediaScriptCommandRoutedEventArgs.cs
- MenuCommandsChangedEventArgs.cs
- Transform.cs
- OdbcPermission.cs
- HashRepartitionEnumerator.cs
- GeometryConverter.cs
- OracleFactory.cs
- ToolStripManager.cs
- TypeBuilder.cs
- UserControlAutomationPeer.cs
- DBConnectionString.cs
- StorageMappingItemLoader.cs
- AdapterUtil.cs
- _ListenerResponseStream.cs
- RequestCachePolicyConverter.cs
- TriggerCollection.cs
- Registration.cs
- SerializationSectionGroup.cs
- EventsTab.cs
- PropertyRecord.cs
- SimplePropertyEntry.cs
- ProcessModelInfo.cs
- ImageIndexConverter.cs
- RenamedEventArgs.cs
- DrawingState.cs
- ProfileSettingsCollection.cs
- ProxyGenerationError.cs
- assertwrapper.cs
- KeyboardEventArgs.cs
- TreeNodeStyle.cs
- HitTestWithPointDrawingContextWalker.cs
- DefaultValidator.cs
- XPathDocumentBuilder.cs
- bidPrivateBase.cs
- WebSysDisplayNameAttribute.cs
- PackageRelationshipCollection.cs
- ModuleBuilder.cs
- RectAnimationClockResource.cs
- HtmlInputImage.cs
- ForEachAction.cs
- GenericWebPart.cs