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
- XmlEntity.cs
- SplashScreenNativeMethods.cs
- TCPListener.cs
- PermissionSet.cs
- UnmanagedBitmapWrapper.cs
- LabelEditEvent.cs
- CompositeActivityDesigner.cs
- SafeIUnknown.cs
- FormattedText.cs
- TransportationConfigurationTypeInstallComponent.cs
- RegexGroupCollection.cs
- X509Certificate2Collection.cs
- UrlMappingsSection.cs
- CodeSnippetCompileUnit.cs
- DataKeyCollection.cs
- RegexGroupCollection.cs
- ProtocolsSection.cs
- StrongTypingException.cs
- TextBoxRenderer.cs
- WhileDesigner.cs
- CodePageUtils.cs
- XPathAxisIterator.cs
- LoadedOrUnloadedOperation.cs
- PagedDataSource.cs
- DbProviderSpecificTypePropertyAttribute.cs
- SqlVisitor.cs
- OperandQuery.cs
- CompositeKey.cs
- InfoCardKeyedHashAlgorithm.cs
- DataSourceSelectArguments.cs
- BamlLocalizabilityResolver.cs
- QilChoice.cs
- BaseCAMarshaler.cs
- DbProviderConfigurationHandler.cs
- HandlerBase.cs
- OrderedDictionary.cs
- InlineUIContainer.cs
- DataGridViewCellStyleChangedEventArgs.cs
- DnsPermission.cs
- WebPartZone.cs
- XmlUTF8TextWriter.cs
- StylusPointProperties.cs
- XXXOnTypeBuilderInstantiation.cs
- SolidColorBrush.cs
- StateItem.cs
- UIElementParaClient.cs
- NameObjectCollectionBase.cs
- WeakReferenceList.cs
- PerformanceCounter.cs
- WindowsListBox.cs
- EncoderParameter.cs
- DataBindingExpressionBuilder.cs
- StylusShape.cs
- PlanCompilerUtil.cs
- XmlnsCache.cs
- SoapServerMethod.cs
- TextDecoration.cs
- ResourceDisplayNameAttribute.cs
- ListViewUpdateEventArgs.cs
- CallbackDebugBehavior.cs
- ContractHandle.cs
- TableParagraph.cs
- ProtocolElementCollection.cs
- HttpModulesSection.cs
- Vector3DCollection.cs
- SessionPageStatePersister.cs
- XmlHierarchyData.cs
- WebPartAddingEventArgs.cs
- ServicePointManagerElement.cs
- UIElementCollection.cs
- PrintingPermission.cs
- OrderedDictionary.cs
- InputScopeAttribute.cs
- TreeNode.cs
- ExpressionTextBoxAutomationPeer.cs
- DataGridViewColumnHeaderCell.cs
- GroupBox.cs
- GCHandleCookieTable.cs
- SelectionChangedEventArgs.cs
- AsyncWaitHandle.cs
- AuthorizationSection.cs
- DoubleCollectionConverter.cs
- DriveInfo.cs
- DescriptionAttribute.cs
- MsmqIntegrationProcessProtocolHandler.cs
- DragDrop.cs
- NameNode.cs
- DataTablePropertyDescriptor.cs
- TextCompositionEventArgs.cs
- x509utils.cs
- _ListenerRequestStream.cs
- CollectionMarkupSerializer.cs
- BuildProvider.cs
- HostSecurityManager.cs
- XmlReader.cs
- StrokeFIndices.cs
- Rect3D.cs
- StdValidatorsAndConverters.cs
- ModuleBuilder.cs
- FragmentQueryKB.cs