Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Controls / SpellCheck.cs / 1305600 / SpellCheck.cs
//----------------------------------------------------------------------------
//
// File: SpellCheck.cs
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// Description: Speller properties for TextBoxBase.
//
//---------------------------------------------------------------------------
namespace System.Windows.Controls
{
using System.Threading;
using System.Windows.Documents;
using System.Windows.Controls.Primitives;
using System.ComponentModel;
using System.Collections.Generic;
using System.Collections;
using System.Windows.Markup;
///
/// Speller properties for TextBoxBase.
///
public sealed class SpellCheck
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
// Ctor.
internal SpellCheck(TextBoxBase owner)
{
_owner = owner;
}
#endregion Constructors
//------------------------------------------------------
//
// Public Properties
//
//-----------------------------------------------------
#region Public Properties
///
/// Enables and disables spell checking within the associated TextBoxBase.
///
///
/// Defaults to false.
///
public bool IsEnabled
{
get
{
return (bool)_owner.GetValue(IsEnabledProperty);
}
set
{
_owner.SetValue(IsEnabledProperty, value);
}
}
///
/// Enables and disables spell checking within a TextBoxBase.
///
public static void SetIsEnabled(TextBoxBase textBoxBase, bool value)
{
if (textBoxBase == null)
{
throw new ArgumentNullException("textBoxBase");
}
textBoxBase.SetValue(IsEnabledProperty, value);
}
///
/// Gets if spell checking is enabled within a TextBoxBase.
///
public static bool GetIsEnabled(TextBoxBase textBoxBase)
{
if (textBoxBase == null)
{
throw new ArgumentNullException("textBoxBase");
}
return (bool)textBoxBase.GetValue(IsEnabledProperty);
}
///
/// Enables and disables spell checking within the associated TextBoxBase.
///
///
/// Defaults to false.
///
public static readonly DependencyProperty IsEnabledProperty =
DependencyProperty.RegisterAttached(
"IsEnabled",
typeof(bool),
typeof(SpellCheck),
new FrameworkPropertyMetadata(new PropertyChangedCallback(OnIsEnabledChanged)));
///
/// The spelling reform mode for the associated TextBoxBase.
///
///
/// In languages with reformed spelling rules (such as German or French),
/// this property specifies whether to apply old (prereform) or new
/// (postreform) spelling rules to examined text.
///
public SpellingReform SpellingReform
{
get
{
return (SpellingReform)_owner.GetValue(SpellingReformProperty);
}
set
{
_owner.SetValue(SpellingReformProperty, value);
}
}
///
/// Sets the spelling reform mode for a TextBoxBase.
///
public static void SetSpellingReform(TextBoxBase textBoxBase, SpellingReform value)
{
if (textBoxBase == null)
{
throw new ArgumentNullException("textBoxBase");
}
textBoxBase.SetValue(SpellingReformProperty, value);
}
///
/// The spelling reform mode for the associated TextBoxBase.
///
///
/// In languages with reformed spelling rules (such as German or French),
/// this property specifies whether to apply old (prereform) or new
/// (postreform) spelling rules to examined text.
///
public static readonly DependencyProperty SpellingReformProperty =
DependencyProperty.RegisterAttached(
"SpellingReform",
typeof(SpellingReform),
typeof(SpellCheck),
new FrameworkPropertyMetadata(Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName == "de" ? SpellingReform.Postreform : SpellingReform.PreAndPostreform,
new PropertyChangedCallback(OnSpellingReformChanged)));
///
/// Custom dictionary locations
///
public IList CustomDictionaries
{
get
{
return (IList)_owner.GetValue(CustomDictionariesProperty);
}
}
///
/// Gets the collection of custom dictionaries used for spell checking of custom words.
///
///
///
public static IList GetCustomDictionaries(TextBoxBase textBoxBase)
{
if (textBoxBase == null)
{
throw new ArgumentNullException("textBoxBase");
}
return (IList)textBoxBase.GetValue(CustomDictionariesProperty);
}
private static readonly DependencyPropertyKey CustomDictionariesPropertyKey =
DependencyProperty.RegisterAttachedReadOnly(
"CustomDictionaries",
typeof(IList),
typeof(SpellCheck),
new FrameworkPropertyMetadata(new DictionaryCollectionFactory()));
///
/// Attached property representing location of custom dicitonaries for given
///
public static readonly DependencyProperty CustomDictionariesProperty = CustomDictionariesPropertyKey.DependencyProperty;
#endregion Public Properties
//------------------------------------------------------
//
// Private Methods
//
//------------------------------------------------------
#region Private Methods
// Callback for changes to the IsEnabled property.
private static void OnIsEnabledChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
TextBoxBase textBoxBase = d as TextBoxBase;
if (textBoxBase != null)
{
TextEditor textEditor = TextEditor._GetTextEditor(textBoxBase);
if (textEditor != null)
{
textEditor.SetSpellCheckEnabled((bool)e.NewValue);
if ((bool)e.NewValue != (bool)e.OldValue)
{
textEditor.SetCustomDictionaries((bool)e.NewValue);
}
}
}
}
// SpellingReformProperty change callback.
private static void OnSpellingReformChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
TextBoxBase textBoxBase = d as TextBoxBase;
if (textBoxBase != null)
{
TextEditor textEditor = TextEditor._GetTextEditor(textBoxBase);
if (textEditor != null)
{
textEditor.SetSpellingReform((SpellingReform)e.NewValue);
}
}
}
#endregion Private Methods
//-----------------------------------------------------
//
// Internal Types
//
//------------------------------------------------------
internal class DictionaryCollectionFactory : MS.Internal.DefaultValueFactory
{
internal DictionaryCollectionFactory()
{ }
internal override object DefaultValue
{
get
{
return null;
}
}
internal override object CreateDefaultValue(DependencyObject owner, DependencyProperty property)
{
return new CustomDictionarySources(owner as TextBoxBase);
}
}
//-----------------------------------------------------
//
// Private Fields
//
//-----------------------------------------------------
#region Private Fields
// TextBoxBase mapped to this object.
private readonly TextBoxBase _owner;
#endregion Private Fields
}
}
// 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
- ToolStripItemClickedEventArgs.cs
- ColumnResizeUndoUnit.cs
- XmlAnyElementAttribute.cs
- ErrorStyle.cs
- Simplifier.cs
- ThrowOnMultipleAssignment.cs
- cache.cs
- MultipartContentParser.cs
- PageStatePersister.cs
- XomlCompilerResults.cs
- MappingMetadataHelper.cs
- LassoHelper.cs
- Annotation.cs
- _ShellExpression.cs
- SolidColorBrush.cs
- XmlQualifiedName.cs
- PerformanceCountersBase.cs
- XmlTextReaderImplHelpers.cs
- Viewport2DVisual3D.cs
- Behavior.cs
- NativeWindow.cs
- ToolBarOverflowPanel.cs
- ExtendedPropertiesHandler.cs
- HttpDebugHandler.cs
- PropertyValueUIItem.cs
- DocumentProperties.cs
- Unit.cs
- InputScope.cs
- AutomationAttributeInfo.cs
- OdbcEnvironmentHandle.cs
- DiscoveryService.cs
- XamlBrushSerializer.cs
- DataBoundControlActionList.cs
- KeyPressEvent.cs
- BuiltInPermissionSets.cs
- RichTextBox.cs
- UmAlQuraCalendar.cs
- ImageKeyConverter.cs
- MemoryFailPoint.cs
- SoapAttributeAttribute.cs
- XmlSchemaGroupRef.cs
- ProxyWebPartManagerDesigner.cs
- TimerEventSubscription.cs
- GetPageNumberCompletedEventArgs.cs
- GPStream.cs
- CodePageEncoding.cs
- mediaeventshelper.cs
- GridLength.cs
- Tokenizer.cs
- ContentIterators.cs
- ReliableRequestSessionChannel.cs
- SegmentInfo.cs
- XmlCharCheckingWriter.cs
- XamlSerializerUtil.cs
- __Filters.cs
- ClearCollection.cs
- UnionQueryOperator.cs
- HttpFileCollection.cs
- ExpandSegmentCollection.cs
- EnvelopedSignatureTransform.cs
- DBSqlParserTableCollection.cs
- IPEndPoint.cs
- DiffuseMaterial.cs
- CompressEmulationStream.cs
- DetailsViewModeEventArgs.cs
- XmlCharacterData.cs
- UnsafeNativeMethods.cs
- Directory.cs
- XmlLanguageConverter.cs
- FixedPageProcessor.cs
- FixedSOMTableRow.cs
- SamlAction.cs
- KeyInterop.cs
- FontFamilyIdentifier.cs
- SchemaImporter.cs
- ReferencedType.cs
- CommandEventArgs.cs
- KeyInstance.cs
- SimpleTextLine.cs
- CurrentChangingEventManager.cs
- QueryContext.cs
- LambdaCompiler.Expressions.cs
- ClientConvert.cs
- ExplicitDiscriminatorMap.cs
- PublisherMembershipCondition.cs
- ListBoxChrome.cs
- CompressEmulationStream.cs
- URLMembershipCondition.cs
- DataTemplateSelector.cs
- UIntPtr.cs
- MatrixValueSerializer.cs
- TypeSystemProvider.cs
- PreviewPrintController.cs
- NotImplementedException.cs
- WindowsFormsSectionHandler.cs
- SHA384Managed.cs
- SpeechUI.cs
- UpdatePanelTrigger.cs
- ActivationServices.cs
- ObfuscationAttribute.cs