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
- WebServiceClientProxyGenerator.cs
- VBIdentifierName.cs
- PrintPreviewControl.cs
- TargetConverter.cs
- DispatcherFrame.cs
- SendKeys.cs
- SqlVersion.cs
- MeshGeometry3D.cs
- CommandHelpers.cs
- NavigationProperty.cs
- InternalBufferOverflowException.cs
- SpecialNameAttribute.cs
- SrgsElementFactoryCompiler.cs
- Enumerable.cs
- SoapFormatExtensions.cs
- ResXResourceWriter.cs
- MatrixCamera.cs
- HttpCachePolicyBase.cs
- GridViewHeaderRowPresenter.cs
- FontInfo.cs
- ObjectStateEntryDbDataRecord.cs
- DocumentSchemaValidator.cs
- FrameworkTemplate.cs
- DnsPermission.cs
- ModifierKeysConverter.cs
- CompositeScriptReference.cs
- BitStream.cs
- Membership.cs
- ReadContentAsBinaryHelper.cs
- FontFamilyConverter.cs
- ByeMessageApril2005.cs
- SuppressMergeCheckAttribute.cs
- Size.cs
- CompilerCollection.cs
- DocumentSequence.cs
- OdbcEnvironment.cs
- TemplateInstanceAttribute.cs
- XmlParserContext.cs
- DataGridViewRowPostPaintEventArgs.cs
- TextLine.cs
- HttpResponseWrapper.cs
- ItemMap.cs
- Graphics.cs
- RadialGradientBrush.cs
- DESCryptoServiceProvider.cs
- NamespaceTable.cs
- PhonemeConverter.cs
- WindowPattern.cs
- DataControlFieldCell.cs
- _NegoState.cs
- RegisteredHiddenField.cs
- XmlDownloadManager.cs
- FacetChecker.cs
- RawStylusSystemGestureInputReport.cs
- TextEditorLists.cs
- MultiPartWriter.cs
- ArithmeticException.cs
- SimpleBitVector32.cs
- XmlWrappingWriter.cs
- SourceInterpreter.cs
- TypeGeneratedEventArgs.cs
- ListenUriMode.cs
- ActivityPreviewDesigner.cs
- TypeHelpers.cs
- BaseWebProxyFinder.cs
- SessionStateSection.cs
- FormattedText.cs
- CloudCollection.cs
- EditorBrowsableAttribute.cs
- MailAddress.cs
- ToolStripLocationCancelEventArgs.cs
- FrameSecurityDescriptor.cs
- RevocationPoint.cs
- MenuItemAutomationPeer.cs
- Screen.cs
- DelayLoadType.cs
- SingleAnimation.cs
- WindowsGraphics.cs
- DLinqColumnProvider.cs
- WindowsUpDown.cs
- SmiEventStream.cs
- InstanceData.cs
- NamespaceEmitter.cs
- ExtensionElementCollection.cs
- KnownBoxes.cs
- ContentIterators.cs
- SafeNativeMethods.cs
- WebServiceFault.cs
- IsolatedStorage.cs
- WebContentFormatHelper.cs
- ThemeableAttribute.cs
- QilTargetType.cs
- ReadOnlyDataSourceView.cs
- Wizard.cs
- StringUtil.cs
- ControlPaint.cs
- BaseCodeDomTreeGenerator.cs
- WindowsFormsSectionHandler.cs
- RadioButton.cs
- BezierSegment.cs