NumberSubstitution Class


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Specifies how numbers in text are displayed in different cultures.

Namespace:   System.Windows.Media
Assembly:  PresentationCore (in PresentationCore.dll)


public class NumberSubstitution


Initializes a new instance of the NumberSubstitution class.

System_CAPS_pubmethodNumberSubstitution(NumberCultureSource, CultureInfo, NumberSubstitutionMethod)

Initializes a new instance of the NumberSubstitution class with explicit property values.


Gets or sets a value which identifies which culture to use when the value of the CultureSource property is set to Override.


Gets or sets a value which identifies the source of the culture value that is used to determine number substitution.


Gets or sets a value which identifies the substitution method that is used to determine number substitution.


Determines whether the specified object is equal to the current NumberSubstitution object.(Overrides Object.Equals(Object).)


Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)


Returns the value of CultureOverride from the provided element.


Returns the value of CultureSource from the provided element.


Serves as a hash function for NumberSubstitution. It is suitable for use in hashing algorithms and data structures such as a hash table.(Overrides Object.GetHashCode().)


Returns the value of Substitution from the provided element.


Gets the Type of the current instance.(Inherited from Object.)


Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodSystem_CAPS_staticSetCultureOverride(DependencyObject, CultureInfo)

Sets the value of CultureOverride for a provided element.

System_CAPS_pubmethodSystem_CAPS_staticSetCultureSource(DependencyObject, NumberCultureSource)

Sets the value of CultureSource for a provided element.

System_CAPS_pubmethodSystem_CAPS_staticSetSubstitution(DependencyObject, NumberSubstitutionMethod)

Sets the value of Substitution for a provided element.


Returns a string that represents the current object.(Inherited from Object.)


Identifies the CultureOverride dependency property.


Identifies the CultureSource dependency property.


Identifies the Substitution dependency property.

Most cultures use the decimal system to represent numbers, but many cultures use different digit shapes. The following table shows several numbering systems used by different cultures.

Table of number substitution glyphs

Example of the appearance of digits in different cultures

It is not sufficient to provide alternate Unicode code points for each set of digit shapes, because, unlike letters, digits are used in calculations. Every application, every operating system, and every run-time library contains code dedicated to converting an internal binary format numeric value to a string of characters, and vice versa. These conversion routines are coded to use Unicode digits "0030" through "0039".

The NumberSubstitution class provides functionality that allows different cultures to substitute the appropriate digit shapes at rendering time. This functionality is similar to the one used for providing font substitution and language dependent font rendering.


Many cultures are discarding their traditional digits shapes and adopting Western digits shapes, therefore the number substitution functionality recognizes the distinction for each culture between traditional digit shapes and national standard digit shapes.

This type is not typically used in XAML as an object element. However, the type exposes several attached properties that can be set on other object elements that have text content.

.NET Framework
Available since 3.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top