Question

My user control have the following 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); }
    }  

This control is compiled into a dll, that I use in others solutions. It works perfect well when I set directly:

<ns:MyControl ButtonAnimationColor="Green" />

The problem occurs when I try to set this DP by using a Style Setter, like that:

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

It give me the following error:

The member "ButtoAnimationColor" is not recognized or is not acessible.

What changes I need to make in my code to be able to set the property like that?

Was it helpful?

Solution

Try setting the target type for the style:

<ns:MyControl.Style>
    <Style TargetType="{x:Type ns:MyControl}">
        <Setter Property="ButtonAnimationColor" Value="Green" />
    </Style>
</ns:MyControl.Style>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top