如何通过样式设置器设置DepedencyProperty?

时间:2013-10-31 13:58:50

标签: wpf user-controls styles dependency-properties setter

我的用户控件具有以下DP:

public static readonly DependencyProperty ButtonAnimationColorProperty =
        DependencyProperty.Register("ButtonAnimationColor", typeof(Color), typeof(MyControl),
        new FrameworkPropertyMetadata(Colors.RoyalBlue, FrameworkPropertyMetadataOptions.AffectsRender, ThemeUpdate));

    public Color ButtonAnimationColor
    {
        get { return (Color)GetValue(ButtonAnimationColorProperty ); }
        set { SetValue(ButtonAnimationColorProperty , value); }
    }  

此控件被编译为dll,我在其他解决方案中使用。当我直接设置时,它的效果非常好:

<ns:MyControl ButtonAnimationColor="Green" />

当我尝试使用Style Setter设置此DP时出现问题,如:

<ns:MyControl>
    <ns:MyControl.Style>
        <Style>
            <Setter Property="ButtonAnimationColor" Value="Green" />
        </Style>
    </ns:MyControl.Style>
</ns:MyControl>

它给我以下错误:

成员“ButtoAnimationColor”无法识别或无法访问。

我需要在代码中进行哪些更改才能设置属性?

1 个答案:

答案 0 :(得分:2)

尝试设置样式的目标类型:

<ns:MyControl.Style>
    <Style TargetType="{x:Type ns:MyControl}">
        <Setter Property="ButtonAnimationColor" Value="Green" />
    </Style>
</ns:MyControl.Style>