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
- SymmetricAlgorithm.cs
- BinaryUtilClasses.cs
- XmlParserContext.cs
- EventMappingSettingsCollection.cs
- TypeContext.cs
- FormatterServices.cs
- PropertyDescriptors.cs
- TraceHandlerErrorFormatter.cs
- TemplateBuilder.cs
- ShaderEffect.cs
- HttpDictionary.cs
- Stack.cs
- _TimerThread.cs
- ProxyAttribute.cs
- BitmapInitialize.cs
- PointConverter.cs
- IfAction.cs
- TouchDevice.cs
- EventData.cs
- SiteMapDataSourceView.cs
- ADConnectionHelper.cs
- WebBrowserNavigatingEventHandler.cs
- ConversionContext.cs
- DataGridCommandEventArgs.cs
- SharedPersonalizationStateInfo.cs
- MetadataItem.cs
- PersonalizationEntry.cs
- LoadedOrUnloadedOperation.cs
- NavigationFailedEventArgs.cs
- XmlnsDictionary.cs
- SelectionWordBreaker.cs
- HashLookup.cs
- FieldCollectionEditor.cs
- NotifyInputEventArgs.cs
- NameValueCollection.cs
- AttachmentCollection.cs
- CodePageUtils.cs
- FlowSwitchDesigner.xaml.cs
- SafeFileHandle.cs
- DbMetaDataColumnNames.cs
- StorageMappingItemLoader.cs
- WhitespaceRuleReader.cs
- HScrollProperties.cs
- ColumnResult.cs
- ToolboxService.cs
- LazyTextWriterCreator.cs
- GifBitmapEncoder.cs
- DataGridRow.cs
- WebControl.cs
- CodeExporter.cs
- CmsInterop.cs
- PeerNameRecordCollection.cs
- TypeDelegator.cs
- InitiatorSessionSymmetricTransportSecurityProtocol.cs
- ReadOnlyAttribute.cs
- ZoneLinkButton.cs
- XmlNodeChangedEventManager.cs
- TreeViewImageKeyConverter.cs
- WebPartsPersonalization.cs
- StructuredTypeEmitter.cs
- PlatformCulture.cs
- TaskExceptionHolder.cs
- MissingMemberException.cs
- CustomCredentialPolicy.cs
- OracleDateTime.cs
- GenericNameHandler.cs
- BrowserTree.cs
- Exceptions.cs
- sqlstateclientmanager.cs
- RemotingSurrogateSelector.cs
- TypeAccessException.cs
- CodeBinaryOperatorExpression.cs
- pingexception.cs
- OracleBinary.cs
- HtmlTableCell.cs
- PassportPrincipal.cs
- OracleInfoMessageEventArgs.cs
- GeometryHitTestParameters.cs
- NetworkAddressChange.cs
- MimeWriter.cs
- DataGridViewTextBoxCell.cs
- SQLMembershipProvider.cs
- HandlerMappingMemo.cs
- DependencyPropertyConverter.cs
- Point4D.cs
- TextEffectResolver.cs
- QueryException.cs
- NullableFloatSumAggregationOperator.cs
- Trace.cs
- EditorBrowsableAttribute.cs
- Executor.cs
- XmlSchemaGroupRef.cs
- ContravarianceAdapter.cs
- WindowInteractionStateTracker.cs
- URLMembershipCondition.cs
- UserNamePasswordServiceCredential.cs
- StateDesigner.TransitionInfo.cs
- TypeConverterHelper.cs
- WindowsComboBox.cs
- FunctionImportElement.cs