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
- ObjectQueryState.cs
- Wildcard.cs
- MainMenu.cs
- CaseInsensitiveComparer.cs
- NamespaceEmitter.cs
- ObjectStorage.cs
- StylusButton.cs
- AsyncOperation.cs
- RedirectionProxy.cs
- unitconverter.cs
- MaterialCollection.cs
- IconBitmapDecoder.cs
- Rect3D.cs
- RightsManagementPermission.cs
- WebPartEventArgs.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- SmtpReplyReader.cs
- __TransparentProxy.cs
- DataProtectionSecurityStateEncoder.cs
- DataGridViewRowStateChangedEventArgs.cs
- ApplicationGesture.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- AutoGeneratedFieldProperties.cs
- OleDbConnectionFactory.cs
- DeleteIndexBinder.cs
- DbConnectionFactory.cs
- TokenFactoryFactory.cs
- XmlToDatasetMap.cs
- Error.cs
- PerfCounterSection.cs
- MatrixValueSerializer.cs
- CapabilitiesSection.cs
- ScriptDescriptor.cs
- NetSectionGroup.cs
- ListViewGroupItemCollection.cs
- EditingCoordinator.cs
- ItemMap.cs
- SecurityMessageProperty.cs
- SQLBytesStorage.cs
- TreeViewItem.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- ExpandableObjectConverter.cs
- ButtonChrome.cs
- AgileSafeNativeMemoryHandle.cs
- ConfigXmlComment.cs
- milexports.cs
- ListControl.cs
- HierarchicalDataTemplate.cs
- GeometryGroup.cs
- WebPartCloseVerb.cs
- ContentFilePart.cs
- validation.cs
- WebPartDescription.cs
- Int16KeyFrameCollection.cs
- XmlDocumentFieldSchema.cs
- LambdaCompiler.Generated.cs
- SqlCommand.cs
- DataServiceRequest.cs
- IncrementalReadDecoders.cs
- ObjectListGeneralPage.cs
- WriteFileContext.cs
- ElementAtQueryOperator.cs
- DataGridViewRowHeaderCell.cs
- RegexRunnerFactory.cs
- Calendar.cs
- ResumeStoryboard.cs
- TableStyle.cs
- ExceptionValidationRule.cs
- XmlEncodedRawTextWriter.cs
- ListViewDeleteEventArgs.cs
- QueryGenerator.cs
- SQLSingleStorage.cs
- _RequestCacheProtocol.cs
- Keyboard.cs
- ReadOnlyPropertyMetadata.cs
- ByeMessage11.cs
- SiteMapHierarchicalDataSourceView.cs
- HttpWebRequest.cs
- TextParaClient.cs
- DesignTimeParseData.cs
- SoapIgnoreAttribute.cs
- ManifestSignedXml.cs
- ThicknessAnimationBase.cs
- WebServiceTypeData.cs
- Crc32.cs
- StatusBarItemAutomationPeer.cs
- RoleManagerSection.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- ListViewContainer.cs
- UserUseLicenseDictionaryLoader.cs
- ConstraintCollection.cs
- xmlformatgeneratorstatics.cs
- SR.cs
- BitmapEffectDrawingContent.cs
- _WinHttpWebProxyDataBuilder.cs
- SafeArchiveContext.cs
- ErrorWebPart.cs
- recordstatescratchpad.cs
- NamedPermissionSet.cs
- NetworkStream.cs