Если вы хотите, чтобы значение могло быть установлено извне пользователями UserControl, вы можете определить новый DependencyProperty
, который затем можно установить для любого экземпляра элемента управления.
public static readonly DependencyProperty LabelForegroundProperty = DependencyProperty.Register(
"LabelForeground",
typeof(Brush),
typeof(MyUserControl),
new UIPropertyMetadata(Brushes.Black));
public Brush LabelForeground
{
get { return (Brush)GetValue(LabelForegroundProperty); }
set { SetValue(LabelForegroundProperty, value); }
}
Затем вы можете создать стиль по умолчанию для метки внутри UserControl, который привязывается к этому значению:
<UserControl.Resources>
<Style TargetType="{x:Type Label}">
<Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type MyUserControl}}, Path=LabelForeground}" />
</Style>
</UserControl.Resources>
Затем любой экземпляр элемента управления может установить свое собственное значение, которое будет применяться к его собственным меткам:*
<MyUserControl LabelForeground="Red"/>