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
- StreamWriter.cs
- TextBox.cs
- EntityDescriptor.cs
- DbQueryCommandTree.cs
- ProxyWebPart.cs
- WebPartCancelEventArgs.cs
- AVElementHelper.cs
- ListComponentEditorPage.cs
- CodeAccessPermission.cs
- UrlPath.cs
- EventLogPermissionAttribute.cs
- ValueType.cs
- TextAction.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- NamedPermissionSet.cs
- WindowsTokenRoleProvider.cs
- XmlSiteMapProvider.cs
- TableLayoutRowStyleCollection.cs
- SystemMulticastIPAddressInformation.cs
- StatusBarDesigner.cs
- ExpressionBuilderContext.cs
- ContentElementAutomationPeer.cs
- MultipleViewProviderWrapper.cs
- ReachNamespaceInfo.cs
- AuthStoreRoleProvider.cs
- EditorZoneBase.cs
- ToolStripItemRenderEventArgs.cs
- ElementsClipboardData.cs
- SqlDataSourceAdvancedOptionsForm.cs
- BuildProviderUtils.cs
- ForwardPositionQuery.cs
- EpmSyndicationContentDeSerializer.cs
- CqlIdentifiers.cs
- DetailsViewUpdatedEventArgs.cs
- StorageEntityTypeMapping.cs
- DBParameter.cs
- ControllableStoryboardAction.cs
- base64Transforms.cs
- __FastResourceComparer.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- DragStartedEventArgs.cs
- PackageRelationshipSelector.cs
- ProfilePropertySettingsCollection.cs
- SchemaTypeEmitter.cs
- WebSysDisplayNameAttribute.cs
- RichTextBoxAutomationPeer.cs
- WorkflowNamespace.cs
- ArrayElementGridEntry.cs
- TimeSpanFormat.cs
- DoubleKeyFrameCollection.cs
- SQLChars.cs
- XPathAxisIterator.cs
- DefaultPropertyAttribute.cs
- ToolStripTextBox.cs
- CodeEventReferenceExpression.cs
- SqlProvider.cs
- CodeNamespaceImport.cs
- XmlCDATASection.cs
- LazyTextWriterCreator.cs
- UnrecognizedAssertionsBindingElement.cs
- XmlSchemaSequence.cs
- SourceItem.cs
- RowToParametersTransformer.cs
- ListItemCollection.cs
- DynamicILGenerator.cs
- ToolStripRenderEventArgs.cs
- SemaphoreSlim.cs
- CookieProtection.cs
- TransactionFilter.cs
- METAHEADER.cs
- SqlParameterCollection.cs
- BadImageFormatException.cs
- RoutingChannelExtension.cs
- CounterSetInstance.cs
- DeflateInput.cs
- PasswordRecovery.cs
- TableChangeProcessor.cs
- SecurityException.cs
- ConsumerConnectionPoint.cs
- ScrollBarRenderer.cs
- MenuItemStyleCollectionEditor.cs
- Simplifier.cs
- SplitterPanel.cs
- Tokenizer.cs
- InheritablePropertyChangeInfo.cs
- BinaryNode.cs
- WSSecureConversation.cs
- WSHttpSecurity.cs
- _DynamicWinsockMethods.cs
- StylusTouchDevice.cs
- EntityReference.cs
- TimeSpanConverter.cs
- LogConverter.cs
- ExpressionBinding.cs
- StreamingContext.cs
- LayoutUtils.cs
- MobileListItemCollection.cs
- PropertyTab.cs
- ReferenceConverter.cs
- Parser.cs