2013-05-21 1 views
4

В настоящее время я создаю библиотеку UserControl XAML с помощью Blend.WPF Control Templating - Как создать настраиваемое свойство?

Я создал шаблон для моего пользовательского типа слайдера WPF. То, что я хотел бы сделать сейчас, - добавить пользовательское свойство кисти для элемента управления, которое позволит легко настроить при разработке интерфейса приложения (у моего слайдера есть цвет фона, цвет переднего плана и цвет эскиза). Возможно ли это, и если да, появится ли он в интерфейсе Blend?

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

+0

Вы ищите свойства Custom Dependency. http://msdn.microsoft.com/en-us/library/ms753358.aspx. – Jatin

ответ

3

В коде вашего UserControl, определить свойство зависимостей для кистей, которые вы хотите использовать в ваш шаблон.

public static readonly DependencyProperty ThumbnailBrushProperty = 
      DependencyProperty.Register("Command", typeof (Brush), typeof (YourControl), new PropertyMetadata(default(Brush))); 

Это свойство будет отображаться в конструкторе VS и Смешать в Разное разделе .

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

UPDATE

Ok, так что ваши создания шаблона для стандартного ползунком. Рассматривали ли вы определение кистей, которые вы используете как ThumbnailBrush и т. Д. В ресурсе, ссылайтесь на этот словарь ресурсов в словаре ресурсов, который содержит ваш шаблон слайдера и просто использует их из шаблона? В Blend вы могли бы изменить его на вкладке Ресурсы.

+0

Спасибо, Марк. В настоящее время мой контроль определен в ResourceDictionary в файле XAML, который не имеет прикрепленного файла .cs. Предположительно мне нужно создать его вручную? – impsnldavid

+0

Вы имеете в виду, что вы определяете настраиваемый шаблон управления для стандартного элемента управления ползунком? Таким образом, нет реального пользовательского контроля? – Marc

+0

Да, это шаблонная версия стандартного элемента управления. Извините, если это не ясно. – impsnldavid