Controle personalizado do WPF: TemplateBinding para imagem

Estou criando um controle personalizado do WPF, umButton com umImage eText. Eu adicionei duas propriedades de dependência ao controle,ImagePath eTexte o modelo de controle (em Temas \ Generic.xaml) é um painel de pilha simples que organiza a imagem e o texto horizontalmente.

oText propriedade funciona bem. Mas, por algum motivo, a imagem de amostra no meu projeto de teste não aparece quando eu usoTemplateBinding aoImagePath propriedade de dependência para obter seu caminho. Eu testei a imagem temporariamente substituindo oTemplateBinding no controle personalizado com um caminho para a imagem, caso em que aparece.

Espero que alguém com mais experiência nesta área possa dar uma olhada e me dizer por que o controle não está funcionando como esperado. Obrigado pela ajuda.

Minha solução do VS 2008 contém um projeto, CustomControlDemo. O projeto contém um controle personalizado, TaskButton.cs e uma janela principal, Window1.xaml, que eu uso para testar o controle. Minha imagem de teste, calendar.png, está localizada em uma pasta Resources no nível raiz do projeto e Generic.xaml está localizado em uma pasta Themes, também no nível raiz do projeto.

Aqui está o código para o meu controle personalizado (de TaskButton.cs):

using System.Windows;
using System.Windows.Controls;

namespace CustomControlDemo
{
    public class TaskButton : RadioButton
    {
        #region Fields

        // Dependency property backing variables
        public static readonly DependencyProperty ImagePathProperty;
        public static readonly DependencyProperty TextProperty;

        #endregion

        #region Constructors

        /// <summary>
        /// Default constructor.
        /// </summary>
        static TaskButton()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(TaskButton), new FrameworkPropertyMetadata(typeof(TaskButton)));

            // Initialize ImagePath dependency properties
            ImagePathProperty = DependencyProperty.Register("ImagePath", typeof(string), typeof(TaskButton), new UIPropertyMetadata(null));
            TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(TaskButton), new UIPropertyMetadata(null));
        }

        #endregion

        #region Dependency Property Wrappers

        /// <summary>
        /// The ImagePath dependency property.
        /// </summary>
        public string ImagePath
        {
            get { return (string)GetValue(ImagePathProperty); }
            set { SetValue(ImagePathProperty, value); }
        }

        /// <summary>
        /// The Text dependency property.
        /// </summary>
        public string Text
        {
            get { return (string)GetValue(TextProperty); }
            set { SetValue(TextProperty, value); }
        }

        #endregion
    }
}

E aqui está o modelo de controle (de Generic.xaml):

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:CustomControlDemo">


    <Style TargetType="{x:Type local:TaskButton}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:TaskButton}">
                    <StackPanel Height="Auto" Orientation="Horizontal">
                        <Image Source="{TemplateBinding ImagePath}"  Width="24" Height="24" Stretch="Fill"/>
                        <TextBlock Text="{TemplateBinding Text}"  HorizontalAlignment="Left" Foreground="{DynamicResource TaskButtonTextBrush}" FontWeight="Bold"  Margin="5,0,0,0" VerticalAlignment="Center" FontSize="12" />
                    </StackPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>

E finalmente, aqui está a marcação Window1 que estou usando para testar o controle:

<Window x:Class="CustomControlDemo.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:customControl="clr-namespace:CustomControlDemo"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <customControl:TaskButton ImagePath="Resources\calendar.png" Text="Calendar" />
    </Grid>
</Window>

Alguma idéia de por que o caminho da imagem não está funcionando? Obrigado novamente.