This drove me crazy for about half an hour… 

I attached this style to a button

<Style x:Key="NavButtonStyle" TargetType="Button">
    <Setter Property="Opacity" Value="0.8"></Setter>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate>
                <Grid x:Name="RootElement" 
                     HorizontalAlignment="Stretch" 
                     VerticalAlignment="Stretch">
                    <ContentPresenter 
                        Content="{TemplateBinding Content}"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Everything compiled fine but the page wouldn’t look right and expression blend would not display it correctly and would display the error message:

The member “Content” is not recognized or is not accessible.

I have not idea how I figured out but it turns out that all I had to do is add a TargetType to the ControlTemplate…  I don’t understand why I have to do this since I already set the TargetType on the Style element…  Anyone?

The final style looked like this:

<Style x:Key="NavButtonStyle" TargetType="Button">
    <Setter Property="Opacity" Value="0.8"></Setter>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Grid x:Name="RootElement" 
                     HorizontalAlignment="Stretch" 
                     VerticalAlignment="Stretch">
                    <ContentPresenter 
                        Content="{TemplateBinding Content}"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
This entry was posted on Friday, March 14th, 2008 at 5:24 pm and is filed under Programming. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.