Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // //// 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
- Debug.cs
- UTF8Encoding.cs
- shaper.cs
- LinqDataSourceStatusEventArgs.cs
- ToolboxDataAttribute.cs
- ByteConverter.cs
- AuthenticationConfig.cs
- DelegatingStream.cs
- TransformPatternIdentifiers.cs
- ScriptMethodAttribute.cs
- LambdaCompiler.cs
- RootProfilePropertySettingsCollection.cs
- Double.cs
- WindowsToolbarAsMenu.cs
- StringComparer.cs
- DataSourceHelper.cs
- HealthMonitoringSectionHelper.cs
- UTF32Encoding.cs
- OpenFileDialog.cs
- GridViewColumn.cs
- WebPartCollection.cs
- glyphs.cs
- StatusBar.cs
- Rect3DValueSerializer.cs
- RawKeyboardInputReport.cs
- DataGridViewComponentPropertyGridSite.cs
- HatchBrush.cs
- CustomCategoryAttribute.cs
- RangeBaseAutomationPeer.cs
- CodeAccessSecurityEngine.cs
- WS2007FederationHttpBinding.cs
- ReadOnlyTernaryTree.cs
- BeginStoryboard.cs
- WebExceptionStatus.cs
- FileDataSourceCache.cs
- HttpCachePolicy.cs
- ItemsControlAutomationPeer.cs
- DataSvcMapFile.cs
- ScrollContentPresenter.cs
- InputElement.cs
- GenericTextProperties.cs
- DiscoveryService.cs
- EventLogPermissionHolder.cs
- BoolExpressionVisitors.cs
- AttachInfo.cs
- TreeViewHitTestInfo.cs
- Int32CollectionValueSerializer.cs
- DataRecordInfo.cs
- TemplateField.cs
- FocusManager.cs
- MailSettingsSection.cs
- GroupPartitionExpr.cs
- SafeRightsManagementSessionHandle.cs
- CheckoutException.cs
- EntityCollectionChangedParams.cs
- LinkDescriptor.cs
- MemberCollection.cs
- SqlRowUpdatedEvent.cs
- ErrorHandler.cs
- DbConnectionPool.cs
- XmlSchemaAnyAttribute.cs
- MultiDataTrigger.cs
- MappingException.cs
- DialogWindow.cs
- HttpListenerRequestUriBuilder.cs
- TrustManager.cs
- CodeTypeMemberCollection.cs
- DateBoldEvent.cs
- RNGCryptoServiceProvider.cs
- PackageRelationshipSelector.cs
- FontDialog.cs
- FocusManager.cs
- MD5.cs
- UnsafeNativeMethodsPenimc.cs
- wgx_render.cs
- StringBlob.cs
- _DisconnectOverlappedAsyncResult.cs
- ClassicBorderDecorator.cs
- GlobalProxySelection.cs
- WebPartZone.cs
- WebBaseEventKeyComparer.cs
- ScrollEvent.cs
- SeparatorAutomationPeer.cs
- NamedPermissionSet.cs
- InputLanguageSource.cs
- TargetException.cs
- ContainerActivationHelper.cs
- ImmComposition.cs
- PartitionResolver.cs
- DoubleKeyFrameCollection.cs
- LoginCancelEventArgs.cs
- EnumType.cs
- ToolStripSeparator.cs
- SmtpTransport.cs
- Thumb.cs
- DataSourceHelper.cs
- WebServiceAttribute.cs
- ProcessHostFactoryHelper.cs
- SQLGuid.cs
- CloudCollection.cs