Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / localization.cs / 1 / localization.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Localization.Comments & Localization.Attributes attached properties // // History: // 12/4/2004: [....] Created the file // 3/11/2005: [....] 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 sync'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
- OperatingSystemVersionCheck.cs
- ContentPlaceHolder.cs
- TriggerAction.cs
- DateTimeStorage.cs
- MSG.cs
- HttpRequest.cs
- GeneratedContractType.cs
- ResourceReferenceKeyNotFoundException.cs
- CodeDelegateCreateExpression.cs
- OracleCommandSet.cs
- SmiXetterAccessMap.cs
- BindingCompleteEventArgs.cs
- TextClipboardData.cs
- OleDbSchemaGuid.cs
- InkCanvasAutomationPeer.cs
- CustomError.cs
- ResourceDefaultValueAttribute.cs
- EventDrivenDesigner.cs
- ContractListAdapter.cs
- ResourceProperty.cs
- EnumType.cs
- ObjectContext.cs
- MessagePartDescription.cs
- MemberRelationshipService.cs
- GPPOINT.cs
- DataServicePagingProviderWrapper.cs
- TimelineGroup.cs
- SecurityKeyEntropyMode.cs
- DatePickerDateValidationErrorEventArgs.cs
- ArgumentElement.cs
- AnnotationObservableCollection.cs
- SchemaConstraints.cs
- ProfilePropertySettings.cs
- EventProviderClassic.cs
- DataKeyCollection.cs
- securitycriticaldata.cs
- XmlSchemaSimpleContent.cs
- updatecommandorderer.cs
- AuthenticatedStream.cs
- ObjectParameterCollection.cs
- CompiledIdentityConstraint.cs
- Query.cs
- DataExpression.cs
- Int32KeyFrameCollection.cs
- FindCriteria11.cs
- _ProxyRegBlob.cs
- HttpAsyncResult.cs
- ClientFormsIdentity.cs
- DynamicQueryStringParameter.cs
- DbProviderFactories.cs
- CreateUserWizardDesigner.cs
- DependencyProperty.cs
- TextMarkerSource.cs
- TransformConverter.cs
- ClientTarget.cs
- ImageSourceValueSerializer.cs
- IDispatchConstantAttribute.cs
- ListManagerBindingsCollection.cs
- XmlAttributeProperties.cs
- CryptoStream.cs
- RelationshipFixer.cs
- DescendentsWalkerBase.cs
- Condition.cs
- ProxyManager.cs
- DragEvent.cs
- SimplePropertyEntry.cs
- SolidColorBrush.cs
- XamlReaderHelper.cs
- PointUtil.cs
- GenericAuthenticationEventArgs.cs
- TokenCreationParameter.cs
- LabelExpression.cs
- ReadOnlyDataSource.cs
- DatePickerAutomationPeer.cs
- AudioStateChangedEventArgs.cs
- EntityDataSourceDataSelectionPanel.cs
- QilStrConcat.cs
- FixedHighlight.cs
- CacheRequest.cs
- EntityDataSourceState.cs
- Label.cs
- ProbeDuplex11AsyncResult.cs
- Logging.cs
- SqlLiftIndependentRowExpressions.cs
- SettingsAttributes.cs
- ConnectionConsumerAttribute.cs
- WindowProviderWrapper.cs
- ReadOnlyDataSourceView.cs
- SystemIPv6InterfaceProperties.cs
- DefinitionProperties.cs
- SpoolingTask.cs
- DataObjectMethodAttribute.cs
- TableLayoutPanel.cs
- AnnotationHighlightLayer.cs
- CollectionViewGroup.cs
- XNodeNavigator.cs
- CodeTypeReference.cs
- WorkflowItemsPresenter.cs
- XmlSchemaType.cs
- ZoneIdentityPermission.cs