Существует ContentPropertyAttribute
, который применяется к классу. WPF / Silverlight будет использовать отражение, чтобы определить, какое свойство использовать.
Если вы хотите сделать это с пользовательским классом, вы можете сделать это так:
[ContentProperty("Bar")]
public class Foo : Control
{
public static DependencyProperty BarProperty = DependencyProperty.Register(
"Bar",
typeof(int),
typeof(Foo),
new FrameworkPropertyMetaData(0));
public int Bar
{
get { return (int)GetValue(BarProperty); }
set { SetValue(BarProperty, value); }
}
}
Тогда вы можете указать это в XAML следующим образом:
<lcl:Foo>12</lcl:Foo>
Обновление
Так как он использует отражение, вам не нужно создавать DependencyProperty. Например, это также будет работать:
[ContentProperty("Bar")]
public class Foo : Control
{
public int Bar { get; set; }
}