Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Automation / Peers / TextBoxAutomationPeer.cs / 1407647 / TextBoxAutomationPeer.cs
using System;
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 System.Windows.Documents;
using MS.Internal;
using MS.Internal.Automation;
using MS.Win32;
namespace System.Windows.Automation.Peers
{
///
public class TextBoxAutomationPeer : TextAutomationPeer, IValueProvider
{
///
public TextBoxAutomationPeer(TextBox owner): base(owner)
{
_textPattern = new TextAdaptor(this, ((TextBoxBase)owner).TextContainer);
}
///
override protected string GetClassNameCore()
{
return "TextBox";
}
///
override protected AutomationControlType GetAutomationControlTypeCore()
{
return AutomationControlType.Edit;
}
///
override public object GetPattern(PatternInterface patternInterface)
{
object returnValue = null;
if(patternInterface == PatternInterface.Value)
returnValue = this;
if (patternInterface == PatternInterface.Text)
{
if(_textPattern == null)
_textPattern = new TextAdaptor(this, ((TextBoxBase)Owner).TextContainer);
return _textPattern;
}
if (patternInterface == PatternInterface.Scroll)
{
TextBox owner = (TextBox)Owner;
if (owner.ScrollViewer != null)
{
returnValue = owner.ScrollViewer.CreateAutomationPeer();
((AutomationPeer)returnValue).EventsSource = this;
}
}
if (patternInterface == PatternInterface.SynchronizedInput)
{
returnValue = base.GetPattern(patternInterface);
}
return returnValue;
}
bool IValueProvider.IsReadOnly
{
get
{
TextBox owner = (TextBox)Owner;
return owner.IsReadOnly;
}
}
string IValueProvider.Value
{
get
{
TextBox owner = (TextBox)Owner;
return owner.Text;
}
}
void IValueProvider.SetValue(string value)
{
if(!IsEnabled())
throw new ElementNotEnabledException();
TextBox owner = (TextBox)Owner;
if (owner.IsReadOnly)
{
throw new ElementNotEnabledException();
}
if (value == null)
{
throw new ArgumentNullException("value");
}
owner.Text = value;
}
//
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
internal void RaiseValuePropertyChangedEvent(string oldValue, string newValue)
{
if (oldValue != newValue)
{
RaisePropertyChangedEvent(ValuePatternIdentifiers.ValueProperty, oldValue, newValue);
}
}
//
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
internal void RaiseIsReadOnlyPropertyChangedEvent(bool oldValue, bool newValue)
{
if (oldValue != newValue)
{
RaisePropertyChangedEvent(ValuePatternIdentifiers.IsReadOnlyProperty, oldValue, newValue);
}
}
///
/// Gets collection of AutomationPeers for given text range.
///
internal override List GetAutomationPeersFromRange(ITextPointer start, ITextPointer end)
{
return new List();
}
private TextAdaptor _textPattern;
}
}
// 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
- SimpleBitVector32.cs
- DashStyle.cs
- OutArgumentConverter.cs
- EntityTransaction.cs
- ColorDialog.cs
- ExpressionBindingCollection.cs
- SmtpReplyReader.cs
- ContractTypeNameCollection.cs
- HTMLTagNameToTypeMapper.cs
- TextTreeRootTextBlock.cs
- FunctionImportElement.cs
- FontCacheLogic.cs
- FlowLayoutPanel.cs
- XsdBuildProvider.cs
- DispatcherEventArgs.cs
- ColorAnimationUsingKeyFrames.cs
- PrintDialogException.cs
- DropDownList.cs
- DataContractSerializerOperationGenerator.cs
- ActivityValidator.cs
- FilterEventArgs.cs
- IpcChannel.cs
- ListViewDeleteEventArgs.cs
- BaseServiceProvider.cs
- FlowDocumentReader.cs
- DataListItemCollection.cs
- ObjectQueryProvider.cs
- EntityDataSourceDataSelection.cs
- OrthographicCamera.cs
- Scanner.cs
- EmptyQuery.cs
- StringUtil.cs
- AdapterUtil.cs
- HTTPNotFoundHandler.cs
- XmlByteStreamReader.cs
- FileLoadException.cs
- MessageEventSubscriptionService.cs
- Stack.cs
- Math.cs
- ColorConverter.cs
- DataGridViewBand.cs
- ToolStripDropDownItem.cs
- HttpRequestCacheValidator.cs
- RegistryConfigurationProvider.cs
- HiddenField.cs
- PersonalizablePropertyEntry.cs
- WebBrowsableAttribute.cs
- AuthorizationRuleCollection.cs
- DocumentViewerBase.cs
- WmlLinkAdapter.cs
- DeviceOverridableAttribute.cs
- RegionData.cs
- FacetValues.cs
- Tokenizer.cs
- BackgroundFormatInfo.cs
- DataView.cs
- EntityConnection.cs
- QueryableDataSourceEditData.cs
- ReadOnlyDictionary.cs
- Zone.cs
- FillRuleValidation.cs
- DataGridViewLinkColumn.cs
- ToolBarTray.cs
- TypeSystemProvider.cs
- PanelContainerDesigner.cs
- ArrayExtension.cs
- SynchronizationLockException.cs
- WhitespaceRuleLookup.cs
- Pen.cs
- SqlExpander.cs
- HMAC.cs
- OutputCacheSettingsSection.cs
- DataTablePropertyDescriptor.cs
- ConfigurationLocationCollection.cs
- EventTask.cs
- Condition.cs
- DataTable.cs
- LinearQuaternionKeyFrame.cs
- DocumentSequenceHighlightLayer.cs
- WorkflowControlEndpoint.cs
- SrgsOneOf.cs
- GuidTagList.cs
- WebBrowserEvent.cs
- RoutedEventConverter.cs
- PathTooLongException.cs
- MarshalByRefObject.cs
- DesignerActionVerbList.cs
- WebServiceTypeData.cs
- UserMapPath.cs
- HtmlTernaryTree.cs
- RegexRunnerFactory.cs
- Rotation3DAnimationUsingKeyFrames.cs
- RegexFCD.cs
- DataControlLinkButton.cs
- OverflowException.cs
- Model3DGroup.cs
- Update.cs
- FileDataSource.cs
- ModulesEntry.cs
- DrawingDrawingContext.cs