Поиск частей и состояний шаблона элемента управления WPF - PullRequest
0 голосов
/ 04 августа 2020

Документация 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 и что я реализовал все части?

Этот ответ ссылается на ту же документацию и предоставляет способ сделать это с помощью отражения, но это бесполезно во время разработки. Действительно ли я ограничен написанием консольного приложения, которое сбрасывает отраженные атрибуты, или обращением к документации (которая может быть недоступна для сторонних элементов управления)?

1 Ответ

0 голосов
/ 04 августа 2020

Действительно ли я ограничен написанием консольного приложения, которое сбрасывает отраженные атрибуты, или обращением к документации [...]?

Да.

Либо вы обратитесь к официальной документации, либо вам нужно найти соответствующие атрибуты с помощью отражения, либо найти части шаблона, визуальные состояния и свойства, просмотрев код C# и ресурсы XAML. Хуже того, хотя следует определять контракт, не все элементы управления работают, и в этом случае отражение даже не помогает.

Однако большинство коммерческих библиотек, таких как Dev Express или Telerik предлагают довольно хорошую документацию по стилю и шаблонам. Для элементов управления WPF вы можете извлекать стили и шаблоны элементов управления через Blend или Visual Studio и в худшем случае обращаться к справочному источнику, если в документации недостаточно информации. Если нет документации и справочного материала для конкретной библиотеки, это предположение или декомпиляция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...