Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / 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: 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
- BigInt.cs
- SiteMapNodeItemEventArgs.cs
- SqlCrossApplyToCrossJoin.cs
- UrlMappingsSection.cs
- MethodImplAttribute.cs
- ConvertEvent.cs
- SharedDp.cs
- ClearTypeHintValidation.cs
- BoundPropertyEntry.cs
- ReadOnlyNameValueCollection.cs
- MetadataSource.cs
- Types.cs
- GroupQuery.cs
- CacheChildrenQuery.cs
- DuplicateWaitObjectException.cs
- CodeExpressionStatement.cs
- ComponentCodeDomSerializer.cs
- ErrorWebPart.cs
- RetrieveVirtualItemEventArgs.cs
- UpDownBase.cs
- GroupedContextMenuStrip.cs
- XmlIlVisitor.cs
- ObjectDataSource.cs
- FileDialogCustomPlace.cs
- FullTextLine.cs
- QilParameter.cs
- PropertyChangingEventArgs.cs
- VoiceInfo.cs
- MultiBindingExpression.cs
- Addressing.cs
- _ConnectStream.cs
- QilFunction.cs
- AncestorChangedEventArgs.cs
- x509utils.cs
- HttpCachePolicyWrapper.cs
- Font.cs
- SystemException.cs
- TypeCollectionDesigner.xaml.cs
- SqlDependency.cs
- DSASignatureDeformatter.cs
- RemotingServices.cs
- MetaType.cs
- SmtpDigestAuthenticationModule.cs
- EntityDataSourceStatementEditorForm.cs
- SymmetricAlgorithm.cs
- HtmlControl.cs
- StructureChangedEventArgs.cs
- SelectedDatesCollection.cs
- Rect3D.cs
- messageonlyhwndwrapper.cs
- ListView.cs
- KeyManager.cs
- FormsAuthenticationEventArgs.cs
- RelatedView.cs
- NameValuePair.cs
- LoadItemsEventArgs.cs
- MasterPageCodeDomTreeGenerator.cs
- WebPartActionVerb.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- OdbcTransaction.cs
- SQLBytesStorage.cs
- _ProxyChain.cs
- SelfIssuedAuthRSACryptoProvider.cs
- IncrementalReadDecoders.cs
- ViewGenerator.cs
- BitmapSource.cs
- AuthenticationSection.cs
- SoapInteropTypes.cs
- HierarchicalDataSourceControl.cs
- TagPrefixInfo.cs
- PolicyUtility.cs
- BamlLocalizationDictionary.cs
- ClientSideQueueItem.cs
- DebugView.cs
- ResolveMatchesMessageCD1.cs
- HandlerFactoryWrapper.cs
- SafeRightsManagementPubHandle.cs
- RefreshEventArgs.cs
- Win32Interop.cs
- ElementAction.cs
- TextElementEnumerator.cs
- TypeHelpers.cs
- ScriptingProfileServiceSection.cs
- XsltContext.cs
- TextServicesProperty.cs
- SafeRightsManagementHandle.cs
- ExtendedProperty.cs
- ResXResourceSet.cs
- InputLanguageManager.cs
- DynamicArgumentDesigner.xaml.cs
- ExtendedPropertiesHandler.cs
- ToolStripCustomTypeDescriptor.cs
- HashFinalRequest.cs
- GridViewRow.cs
- PeerObject.cs
- DataKey.cs
- ExeContext.cs
- SessionPageStatePersister.cs
- AlignmentYValidation.cs
- ExpressionBuilderContext.cs