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
- AdRotator.cs
- BuildResult.cs
- DebugView.cs
- StaticSiteMapProvider.cs
- DecimalAnimationUsingKeyFrames.cs
- ExternalException.cs
- ModelFunctionTypeElement.cs
- Roles.cs
- WebExceptionStatus.cs
- Page.cs
- LogStore.cs
- EventManager.cs
- DesignerCategoryAttribute.cs
- UIElementHelper.cs
- Size3D.cs
- SmtpNtlmAuthenticationModule.cs
- TransactionsSectionGroup.cs
- TextEditorContextMenu.cs
- PageAdapter.cs
- _AcceptOverlappedAsyncResult.cs
- XamlUtilities.cs
- ReferenceEqualityComparer.cs
- ProjectedWrapper.cs
- SelectedGridItemChangedEvent.cs
- AnimationLayer.cs
- WebUtil.cs
- SelectionWordBreaker.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- AutomationProperties.cs
- MobileResource.cs
- BaseParagraph.cs
- HostSecurityManager.cs
- NameObjectCollectionBase.cs
- TraceListener.cs
- RNGCryptoServiceProvider.cs
- SqlCacheDependencyDatabaseCollection.cs
- XmlCharType.cs
- returneventsaver.cs
- DataRowCollection.cs
- FileUtil.cs
- TypeLibConverter.cs
- HtmlInputFile.cs
- BindingCompleteEventArgs.cs
- NamespaceEmitter.cs
- DocumentEventArgs.cs
- ChangeConflicts.cs
- DataRowExtensions.cs
- ConditionalDesigner.cs
- Substitution.cs
- MetadataSource.cs
- WindowsListView.cs
- GridViewSelectEventArgs.cs
- SQLChars.cs
- LayoutEvent.cs
- FormsAuthenticationUserCollection.cs
- AttributeCollection.cs
- HttpConfigurationSystem.cs
- TextMarkerSource.cs
- SqlParameter.cs
- ComPlusContractBehavior.cs
- HTMLTagNameToTypeMapper.cs
- DataGridViewCellStyleChangedEventArgs.cs
- SizeConverter.cs
- XPathEmptyIterator.cs
- CannotUnloadAppDomainException.cs
- PartialToken.cs
- SqlWriter.cs
- ViewSimplifier.cs
- OleDbCommand.cs
- OleDbReferenceCollection.cs
- ReadOnlyDictionary.cs
- CalendarTable.cs
- CommonDialog.cs
- FlowDocument.cs
- ButtonBase.cs
- filewebresponse.cs
- XmlReflectionMember.cs
- SamlSecurityTokenAuthenticator.cs
- SecurityImpersonationBehavior.cs
- LongAverageAggregationOperator.cs
- CmsInterop.cs
- ProfileGroupSettings.cs
- DoubleAnimationUsingKeyFrames.cs
- XPathAncestorIterator.cs
- DoubleCollectionConverter.cs
- LocalBuilder.cs
- WaitHandleCannotBeOpenedException.cs
- SqlBooleanMismatchVisitor.cs
- TraceProvider.cs
- ObjectListComponentEditor.cs
- COM2EnumConverter.cs
- StatusCommandUI.cs
- Profiler.cs
- SerializationException.cs
- RuntimeResourceSet.cs
- TextLineResult.cs
- StringAttributeCollection.cs
- SmtpNtlmAuthenticationModule.cs
- AccessibleObject.cs
- EdmRelationshipRoleAttribute.cs