WPF Templates error - "Provide value on 'System.Windows.Baml2006.TypeConverterMarkupExtension' threw

Posted by jasonk on Stack Overflow See other posts from Stack Overflow or by jasonk
Published on 2010-03-08T16:43:27Z Indexed on 2010/06/11 15:12 UTC
Read the original article Hit count: 1821

I've just started experimenting with WPF templates vs. styles and I'm not sure what I'm doing wrong. The goal below is to alternate the colors of the options in the menu. The code works fine with just the , but when I copy and paste/rename it for the second segment of "MenuChoiceOdd" I get the following error:

> Provide value on 'System.Windows.Baml2006.TypeConverterMarkupExtension' threw an exception.

Sample of the code:

<Window x:Class="WpfApplication1.Template_Testing"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Template_Testing" Height="300" Width="300">
    <Grid>
        <Grid.Resources>
            <ControlTemplate x:Key="MenuChoiceEven">
                <Border BorderThickness="1" BorderBrush="#FF4A5D80">
                <TextBlock Height="Auto" HorizontalAlignment="Stretch" Margin="0"  Width="Auto" FontSize="14" Foreground="SlateGray" TextAlignment="Left" AllowDrop="True" Text="{Binding Path=Content, RelativeSource={RelativeSource TemplatedParent}}">
                    <TextBlock.Background>
                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                            <GradientStop Color="White" Offset="0" />
                            <GradientStop Color="#FFC2CCDB" Offset="1" />
                        </LinearGradientBrush>
                    </TextBlock.Background>
                </TextBlock>
                </Border>
            </ControlTemplate>
            <ControlTemplate x:Key="MenuChoiceOdd">
                <Border BorderThickness="1" BorderBrush="#FF4A5D80">
                    <TextBlock Height="Auto" HorizontalAlignment="Stretch" Margin="0"  Width="Auto" FontSize="14" Foreground="SlateGray" TextAlignment="Left" AllowDrop="True" Text="{Binding Path=Content, RelativeSource={RelativeSource TemplatedParent}}">
                    <TextBlock.Background>
                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                            <GradientStop Color="White" Offset="0" />
                            <GradientStop Color="##FFCBCBCB" Offset="1" />
                        </LinearGradientBrush>
                    </TextBlock.Background>
                    </TextBlock>
                </Border>
            </ControlTemplate>            
        </Grid.Resources>
        <Border BorderBrush="SlateGray" BorderThickness="2" Margin="10" CornerRadius="10" Background="LightSteelBlue" Width="200">
            <StackPanel Margin="4">
                <TextBlock Height="Auto" HorizontalAlignment="Stretch" Margin="2,2,2,0" Name="MenuHeaderTextBlock" Text="TextBlock" Width="Auto" FontSize="16" Foreground="PaleGoldenrod" TextAlignment="Left" Padding="10" FontWeight="Bold"><TextBlock.Background><LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"><GradientStop Color="LightSlateGray" Offset="0" /><GradientStop Color="DarkSlateGray" Offset="1" /></LinearGradientBrush></TextBlock.Background></TextBlock>
                <StackPanel Height="Auto" HorizontalAlignment="Stretch" Margin="2,0,2,0" Name="MenuChoicesStackPanel" VerticalAlignment="Top" Width="Auto">
                    <Button Template="{StaticResource MenuChoiceEven}" Content="Test Even menu element" />
                    <Button Template="{StaticResource MenuChoiceOdd}"  Content="Test odd menu element" />
                </StackPanel>
            </StackPanel>
        </Border>
    </Grid>
</Window>

What am I doing wrong?

© Stack Overflow or respective owner

Related posts about wpf

Related posts about templates