Я пытаюсь расширить заголовок Expander (часть ToggleButton ), чтобы учесть некоторые дополнительные функции.Будучи довольно новым для расширения элементов управления WPF с помощью ControlTemplates, я уже согласился с тем, что мне придется полностью заменить шаблон Expander своим собственным (без возможности повторного использования первоначально определенных компонентов или даже стилей, что делает это совсем немногораздражает, на мой взгляд - но вопрос не в этом).
Однако я хотел представить некоторые свойства, которые изменяют внешний вид и работу компонента.Поэтому я создал новый подтип Expander
, который просто определяет новые свойства зависимостей, которые я хочу использовать.Но я заметил, что, учитывая, что я хочу использовать эти свойства в шаблоне для ToggleButton, который вложен в шаблон для Expander, я не могу использовать эти свойства таким образом.Поэтому мне также пришлось подтипить ToggleButton
, определить свойства зависимостей для этого типа и заставить шаблон Expander передавать значения в шаблон ToggleButton.
Таким образом, я получил два новых типа впространство имен (вложение нового типа ToggleButton внутри подтипа Expander не сработало?), полная копия шаблона Expander с изменением только одной строки (где была вставлена ToggleButton, проходящая через новые свойства), а затем фактическаяжелаемые изменения для шаблона ToggleButton.
И здесь возникает вопрос: есть ли способ сделать это менее сложным?Чтобы уменьшить объем работы, которую необходимо выполнить только для расширения подкомпонента чужого шаблона?Или просто способ использовать родительские свойства (Expander) внутри шаблона ToggleButton без необходимости его подтипа?