Документация MSDN указывает, что при определении настраиваемого элемента управления необходимо определить контракт управления. На этой странице он определяется так:
[TemplatePart(Name = "UpButtonElement", Type = typeof(RepeatButton))]
[TemplatePart(Name = "DownButtonElement", Type = typeof(RepeatButton))]
[TemplateVisualState(Name = "Positive", GroupName = "ValueStates")]
//...rest cut for length
public class NumericUpDown : Control
//...
Я не могу найти нигде в документации, где указывается, как обнаружить этот контракт. Если я переопределяю шаблон элемента управления, как мне узнать, что я обработал все VisualStates и что я реализовал все части?
Этот ответ ссылается на ту же документацию и предоставляет способ сделать это с помощью отражения, но это бесполезно во время разработки. Действительно ли я ограничен написанием консольного приложения, которое сбрасывает отраженные атрибуты, или обращением к документации (которая может быть недоступна для сторонних элементов управления)?