This documentation is archived and is not being maintained.

ContentPropertyAttribute Class

Specifies which property of a class to use as the content property when written as XAML.

Namespace:  System.Windows.Markup
Assembly:  WindowsBase (in WindowsBase.dll)

[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public sealed class ContentPropertyAttribute : Attribute
This managed class is not typically used in XAML.

If the associated property of a ContentPropertyAttribute is not of type string or object, a type converter will be called at runtime. If a type converter cannot be found at runtime, an exception is thrown.

In order to accept more than a single object element as content, the type of the content property must be a collection type.

An example of a class in Windows Presentation Foundation (WPF) that uses the ContentPropertyAttribute is ContentControl, which the Button class inherits from. The property Content on the ContentControl is the content property set by the ContentPropertyAttribute. If a Button is instantiate in XAML, Content of the Button will be set to the element that is between the start and end button tags.

The following example creates a class named Film which is decorated with the ContentPropertyAttribute. The property named Title is set as the content property.

public class Film
    public Film()

    public string Title
        get { return _title; }
        set { _title = value; }

    private string _title;


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

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0