WPF: создайте пользовательский элемент управления без переписывания ControlTemplate - PullRequest
0 голосов
/ 25 февраля 2011

Эй, я создаю пользовательский элемент управления в WPF, наследующий от ListView. Однако я хочу, чтобы он выглядел точно так же, как уже существующий ListView.

Можно ли использовать шаблон ListView по умолчанию в пользовательском элементе управления, не переписывая его в xaml? У меня есть файл Generic.xaml с добавленным новым элементом управления, но мне не нужно переписывать код шаблона.

Спасибо

РЕДАКТИРОВАТЬ: Я также хочу сохранить его как можно более сухим, не повторяя (беспорядок) код.

Ответы [ 2 ]

4 голосов
/ 25 февраля 2011

Если вы создаете подкласс ListView, то ваш подклассный элемент управления будет использовать шаблон ListView.Это оно!Вам не нужно ничего делать!

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

  DefaultStyleKeyProperty.OverrideMetadata(typeof(MyControl),
    new FrameworkPropertyMetadata(typeof(MyControl)));

Однако если вы не установите это свойство, оно будет использовать значение, установленное суперклассом.1007 * Я думаю, проблема в том, что вы использовали «Добавить новый элемент» => «Пользовательский элемент управления», чтобы создать свой элемент управления, а затем изменили класс, который он расширяет.Вместо этого просто добавьте новый класс C # и расширьте ListView.

1 голос
/ 26 февраля 2011
<Style TargetType="{x:Type local:MyControl}" BasedOn={StaticResource {x:Type ListView}}" /> 
...