Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / localization.cs / 1305600 / localization.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Localization.Comments & Localization.Attributes attached properties // // History: // 12/4/2004: Garyyang Created the file // 3/11/2005: garyyang rename Loc to Localization class // //--------------------------------------------------------------------------- using System.Collections; using System.Diagnostics; using MS.Internal.Globalization; namespace System.Windows { // // Note: the class name and property name must be kept in [....]'ed with // Framework\MS\Internal\Globalization\LocalizationComments.cs file. // Compiler checks for them by literal string comparisons. // ////// Class defines attached properties for Comments and Localizability /// public static class Localization { ////// DependencyProperty for Comments property. /// public static readonly DependencyProperty CommentsProperty = DependencyProperty.RegisterAttached( "Comments", typeof(string), typeof(Localization) ); ////// DependencyProperty for Localizability property. /// public static readonly DependencyProperty AttributesProperty = DependencyProperty.RegisterAttached( "Attributes", typeof(string), typeof(Localization) ); ////// Reads the attached property Comments from given element. /// /// The element from which to read the attached property. ///The property's value. [AttachedPropertyBrowsableForType(typeof(object))] public static string GetComments(object element) { if (element == null) { throw new ArgumentNullException("element"); } return GetValue(element, CommentsProperty); } ////// Writes the attached property Comments to the given element. /// /// The element to which to write the attached property. /// The property value to set public static void SetComments(object element, string comments) { if (element == null) { throw new ArgumentNullException("element"); } LocComments.ParsePropertyComments(comments); SetValue(element, CommentsProperty, comments); } ////// Reads the attached property Localizability from given element. /// /// The element from which to read the attached property. ///The property's value. [AttachedPropertyBrowsableForType(typeof(object))] public static string GetAttributes(object element) { if (element == null) { throw new ArgumentNullException("element"); } return GetValue(element, AttributesProperty); } ////// Writes the attached property Localizability to the given element. /// /// The element to which to write the attached property. /// The property value to set public static void SetAttributes(object element, string attributes) { if (element == null) { throw new ArgumentNullException("element"); } LocComments.ParsePropertyLocalizabilityAttributes(attributes); SetValue(element, AttributesProperty, attributes); } private static string GetValue(object element, DependencyProperty property) { DependencyObject dependencyObject = element as DependencyObject; if (dependencyObject != null) { // For DO, get the value from the property system return (string) dependencyObject.GetValue(property); } // For objects, get the value from our own hashtable if (property == CommentsProperty) { lock(_commentsOnObjects.SyncRoot) { return (string) _commentsOnObjects[element]; } } else { Debug.Assert(property == AttributesProperty); lock(_attributesOnObjects.SyncRoot) { return (string) _attributesOnObjects[element]; } } } private static void SetValue(object element, DependencyProperty property, string value) { DependencyObject dependencyObject = element as DependencyObject; if (dependencyObject != null) { // For DO, store the value in the property system dependencyObject.SetValue(property, value); return; } // For other objects, store the value in our own hashtable if (property == CommentsProperty) { lock(_commentsOnObjects.SyncRoot) { _commentsOnObjects[element] = value; } } else { Debug.Assert(property == AttributesProperty); lock(_attributesOnObjects.SyncRoot) { _attributesOnObjects[element] = value; } } } /// /// private storage for values set on objects /// private static Hashtable _commentsOnObjects = new Hashtable(); private static Hashtable _attributesOnObjects = new Hashtable(); } } // 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
- ResourceSet.cs
- CompensationToken.cs
- Memoizer.cs
- MultiView.cs
- ResXResourceWriter.cs
- MediaTimeline.cs
- ScaleTransform.cs
- ObjectDataSource.cs
- DiagnosticTrace.cs
- Condition.cs
- SamlAuthorizationDecisionStatement.cs
- ProcessHost.cs
- ContainsRowNumberChecker.cs
- PolicyManager.cs
- TraceUtils.cs
- AmbientLight.cs
- VersionPair.cs
- InertiaExpansionBehavior.cs
- EncodingTable.cs
- CodeDOMUtility.cs
- MailHeaderInfo.cs
- PrivateFontCollection.cs
- SecureUICommand.cs
- LicFileLicenseProvider.cs
- SqlStatistics.cs
- Rotation3DAnimationBase.cs
- DatatypeImplementation.cs
- AssemblyBuilderData.cs
- StagingAreaInputItem.cs
- GreenMethods.cs
- DependencyPropertyValueSerializer.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- WebSysDescriptionAttribute.cs
- MenuItemBindingCollection.cs
- TextAnchor.cs
- TransformGroup.cs
- EncoderReplacementFallback.cs
- AdornerLayer.cs
- ListControlDesigner.cs
- UnsafeNativeMethods.cs
- FormsAuthenticationModule.cs
- ExpressionEditorAttribute.cs
- ReadingWritingEntityEventArgs.cs
- WebBrowserNavigatedEventHandler.cs
- HttpCookieCollection.cs
- RegexStringValidator.cs
- EmbeddedObject.cs
- StaticFileHandler.cs
- DataGridViewCell.cs
- ScrollPattern.cs
- UIElement.cs
- ToolStripCustomTypeDescriptor.cs
- WindowsProgressbar.cs
- SupportsEventValidationAttribute.cs
- BindingManagerDataErrorEventArgs.cs
- MD5.cs
- MdiWindowListItemConverter.cs
- BaseInfoTable.cs
- WindowsStartMenu.cs
- Rect.cs
- WindowsListViewGroupHelper.cs
- ClientBuildManagerCallback.cs
- WorkItem.cs
- CompilationUnit.cs
- QueryTreeBuilder.cs
- RedistVersionInfo.cs
- ParagraphResult.cs
- control.ime.cs
- Faults.cs
- URIFormatException.cs
- Scene3D.cs
- SafeRightsManagementHandle.cs
- RestHandlerFactory.cs
- CreateUserWizard.cs
- SoapSchemaImporter.cs
- NumericUpDown.cs
- MemoryFailPoint.cs
- TimelineGroup.cs
- AnnotationComponentManager.cs
- WebPartMenu.cs
- Vector3DAnimationBase.cs
- ProfileSettings.cs
- RegexReplacement.cs
- CreateParams.cs
- XmlFormatWriterGenerator.cs
- DrawingServices.cs
- BaseHashHelper.cs
- TextTreeUndo.cs
- sqlstateclientmanager.cs
- TableParaClient.cs
- XmlWriter.cs
- LogWriteRestartAreaAsyncResult.cs
- UIElement.cs
- DataControlReferenceCollection.cs
- BitmapMetadata.cs
- DateTimeFormatInfo.cs
- WebPartDisplayModeCollection.cs
- CookielessHelper.cs
- TraceSection.cs
- BamlTreeMap.cs