Code:
/ 4.0 / 4.0 / untmp / 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 List GetChildrenCore()
{
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
- userdatakeys.cs
- DiscoveryClientBindingElement.cs
- XmlWriterDelegator.cs
- FixedElement.cs
- WaitingCursor.cs
- SmiConnection.cs
- FilterableAttribute.cs
- RouteParametersHelper.cs
- EditorPartChrome.cs
- MemberAccessException.cs
- TdsValueSetter.cs
- Material.cs
- ConnectionOrientedTransportChannelListener.cs
- ServicesUtilities.cs
- xml.cs
- DoubleCollectionConverter.cs
- mansign.cs
- FlowLayoutPanel.cs
- FixedTextBuilder.cs
- TextServicesManager.cs
- NumericPagerField.cs
- MobileTextWriter.cs
- ResourceContainer.cs
- AdjustableArrowCap.cs
- SessionEndingCancelEventArgs.cs
- StyleModeStack.cs
- EncryptedData.cs
- XmlSchemaSequence.cs
- HandleScope.cs
- IntegerValidatorAttribute.cs
- DebugHandleTracker.cs
- Viewport2DVisual3D.cs
- SqlDependencyUtils.cs
- TypedTableBase.cs
- followingquery.cs
- AssemblyInfo.cs
- BasicViewGenerator.cs
- WithStatement.cs
- ShutDownListener.cs
- DependencyObjectValidator.cs
- Utility.cs
- RuntimeArgumentHandle.cs
- ProcessRequestAsyncResult.cs
- PathFigure.cs
- PerformanceCounterLib.cs
- SqlInternalConnection.cs
- BinaryObjectInfo.cs
- GeneratedContractType.cs
- IImplicitResourceProvider.cs
- LinkLabelLinkClickedEvent.cs
- DbProviderConfigurationHandler.cs
- TreeNode.cs
- WebServiceHandler.cs
- StringUtil.cs
- PasswordBoxAutomationPeer.cs
- CustomAttributeFormatException.cs
- FolderLevelBuildProviderCollection.cs
- EntityClassGenerator.cs
- MonthChangedEventArgs.cs
- ServiceModelPerformanceCounters.cs
- ToolboxBitmapAttribute.cs
- DataServiceProviderWrapper.cs
- CommonGetThemePartSize.cs
- CollectionViewGroup.cs
- Span.cs
- WindowsSolidBrush.cs
- ComponentSerializationService.cs
- grammarelement.cs
- PropertyKey.cs
- BamlMapTable.cs
- CodeIterationStatement.cs
- TextEditorSelection.cs
- SmtpClient.cs
- RemoteWebConfigurationHost.cs
- PtsContext.cs
- StreamGeometry.cs
- MenuCommand.cs
- NotifyInputEventArgs.cs
- IisTraceListener.cs
- WhileDesigner.xaml.cs
- SearchForVirtualItemEventArgs.cs
- AutomationIdentifier.cs
- SmiMetaDataProperty.cs
- OdbcConnectionFactory.cs
- ButtonAutomationPeer.cs
- CallInfo.cs
- PerspectiveCamera.cs
- SiteMapSection.cs
- LocalFileSettingsProvider.cs
- SecurityTokenException.cs
- HtmlTextArea.cs
- XmlBinaryReaderSession.cs
- DataServiceRequestException.cs
- AuthenticatingEventArgs.cs
- HttpRuntime.cs
- XPathDocumentIterator.cs
- HwndHostAutomationPeer.cs
- IPAddressCollection.cs
- Style.cs
- TargetInvocationException.cs