вы можете сделать его еще более универсальным и хорошо, проходя через стиль для imgButtonImage, таким образом, вы можете установить несколько свойств. Таким образом, в пределах вашего пользовательского элемента управления добавить свойство зависимостей, но сделать его стиль:
public static readonly DependencyProperty UseStyleProperty =
DependencyProperty.Register("UseStyle", typeof(Style), typeof(CustomButtonUserControl), new PropertyMetadata(UseStyle_PropertyChanged));
public Style UseStyle
{
get { return (Style)GetValue(UseStyleProperty); }
set { SetValue(UseStyleProperty, value); }
}
private static void UseStyle_PropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e)
{
((CustomButtonUserControl)source).imgButtonImage.Style = (Style)e.NewValue;
}
Обратите внимание, как в функции PropertyChanged я установить стиль управления к новому стилю.
Тогда, когда я у себя UserControl я могу пройти через стиль:
<Style x:Name="MyFancyStyle" TargetType="Button" >
<Setter Property="FontSize" Value="24" />
</Style>
<controls:MyUserControl UseStyle="{StaticResource MyFancyStyle}" />
работы в режиме конструктора VS тоже! (Это miracle)
Показать xaml, где вы фактически размещаете UserControl в другом и как вы назначаете ему стиль. – AnthonyWJones 2010-12-06 14:16:40