Skip to main content
All docs
V25.1
  • Badge.ContentStringFormat Property

    Gets or sets a composite string that specifies how to format the Content property if it is displayed as a string. This is a dependency property.

    Namespace: DevExpress.Xpf.Core

    Assembly: DevExpress.Xpf.Core.v25.1.dll

    NuGet Package: DevExpress.Wpf.Core

    Declaration

    public string ContentStringFormat { get; set; }

    Property Value

    Type Description
    String

    A composite String that specifies how to format the Badge.Content property if it is displayed as a string.

    Remarks

    The following code sample specifies the ContentStringFormat and uses the Badge.ContentFormatProvider property to specify the Badge‘s content format:

    WPF Badges - ContentStringFormat Property

    <dx:SimpleButton
       HorizontalAlignment="Center"
       VerticalAlignment="Center"
       Glyph="{dx:SvgImageSource Uri=Glyph_Message.svg}">
       <dx:Badge.Badge>
           <dx:Badge Content="150" BadgeKind="Error"
                     ContentStringFormat="{}{0:length2}"
                     ContentFormatProvider="{local:BadgeFormatProvider}"/>
       </dx:Badge.Badge>
    </dx:SimpleButton>
    
    public class BadgeFormatProvider : MarkupExtension, IFormatProvider, ICustomFormatter {
       static readonly Regex formatExpression = new Regex(@"length(\d+)", RegexOptions.Compiled);
    
       public object GetFormat(Type formatType) { return this; }
       public override object ProvideValue(IServiceProvider serviceProvider) { return this; }
       public string Format(string format, object arg, IFormatProvider formatProvider) {
           if(arg==null)
               return String.Empty;
    
           var match = formatExpression.Match(format);
           if(!match.Success)
               return String.Format(CultureInfo.CurrentCulture, format ?? "{0}", arg);
    
           var length = int.Parse(match.Groups[1].Value);
           var inputString = Convert.ToString(arg);
           if (inputString.Length <= length)
               return inputString;
    
           if (decimal.TryParse(inputString, out _))
               return (Math.Pow(10, length) - 1) + "+";
    
           return inputString.Substring(0, length) + "...";
       }
    }
    

    Tip

    Refer to the Formatting types in .NET topic for more information.

    See Also