Пользовательский элемент управления WPF: привязка шаблона к изображению

Я создаю пользовательский элемент управления WPF,Button сImage а такжеText, Я добавил два свойства зависимости в элемент управления,ImagePath а такжеTextи шаблон элемента управления (в Themes \ Generic.xaml) представляет собой простую панель стека, которая размещает изображение и текст по горизонтали.

Text собственность работает отлично. Но по какой-то причине образец изображения в моем тестовом проекте непоявляется, когда я используюTemplateBinding кImagePath свойство зависимости, чтобы получить его путь. Я проверил изображение, временно заменивTemplateBinding в пользовательском элементе управления с путем к изображению, в этом случае оно появляется.

Я надеюсь, что кто-то с большим опытом в этой области может взглянуть и сказать мне, почему контроль нет работает как положено. Спасибо за вашу помощь.

Мое решение VS 2008 содержит один проект, CustomControlDemo. Проект содержит пользовательский элемент управления TaskButton.cs и главное окно Window1.xaml, которое я использую для тестирования элемента управления. Мой тестовый образ calendar.png находится в папке Resources на корневом уровне проекта, а Generic.xaml - в папке Themes, также на корневом уровне проекта.

Вот код для моего пользовательского элемента управления (из 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

        /// 
        /// Default constructor.
        /// 
        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

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

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

        #endregion
    }
}

А вот шаблон управления (из Generic.xaml):




    
        
            
                
                    
                        
                        
                    
                
            
        
    

И, наконец, вот разметка Window1, которую я использую для проверки элемента управления:


    
        
    

Любые идеи, почему путь к изображению нет работает? Еще раз спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос