Подклассы тем управления WPF, почему не только частичный подкласс - PullRequest
0 голосов
/ 01 ноября 2011

Так много чтения и так много о наследовании, я не могу найти никаких прямых ответов, так что вот так.

Если у вас есть базовый класс, унаследованный для определенных вещей, посмотрите или действуйте определенным образомКстати, вы можете создать его подкласс и получить все функциональные возможности родительского класса с помощью лишь слегка измененного дифференциала.То же самое не похоже на то же самое для работы с темами WPF ... точнее, для элемента управления со списком (похожие проблемы с текстовым полем, но это, очевидно, менее сложно).

Рассматривая элемент управления Примеры шаблонов , они обсуждают всю его структуру, границы, фоны, глифы, действия, свойства и т. Д.

Если ЕДИНСТВЕННАЯ вещь, которую я хочу сделать с помощью выпадающего списка, это изменить границуКрасному, если в нем есть ошибка, кажется, мне нужно в основном переопределить всю вещь и каким-то образом вставить свой настраиваемый параметр триггера / цвет, который будет реализован.

В некоторой степени похоже на элемент управления textboxи как его создали.У него есть именованный элемент управления, когда он пытается связать цвет фона ... Вы не можете просто сказать ... background = какое-то статическое значение кисти.

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

Я также вижу, что некоторые элементы управления состоят из OTHER Control.Templates,так как же я могу присоединиться к изменению настройки свойства только для одного элемента шаблона элемента управления ... Например, в выпадающем списке есть шаблон элемента управления для кнопки переключения.Исходя из этого, он имеет границу через x: Name = "Border", и я хочу изменить элемент THAT в производном стиле.

Спасибо

1 Ответ

0 голосов
/ 03 ноября 2011

Я не могу понять ваш вопрос здесь.Но из того, что я получаю, это: Да, вы не можете частично реализовать Шаблоны, на самом деле я не знаю, как это возможно.Но если вы хотите изменить определенные вещи, вы, конечно, можете это сделать.Вы можете создавать стили, шаблоны, кисти и т. Д. Как DependencyProperties и использовать TemplateBinding для привязки к ним на данном дочернем элементе управления.

Помните, что WPF позволяет всегда менять шаблон на лету.если бы мы могли частично изменить шаблон, это могло бы ухудшить производительность или могло бы стать грязным и сложным.Тем не менее, вы можете сделать это, используя ContentControls и TemplateBinding или просто Triggers.

Для моих пользовательских элементов управления, которые могут содержать несколько вложенных элементов управления, я обычно добавляю стиль для них.Например, пользовательский ComboBox будет содержать ToggleButtonStyle.

. Однако было бы неплохо добавить триггеры шаблона управления без необходимости переопределения шаблона.

...