Я много лет над этой штукой тоже крутился, но для себя понял, что самое элегантное - менять темплейт
Увы нет, я их столько переделал и очень часто надо делать именно CustomControl это если правильно по стандартам делать, а если накидать и не задумываться, то да — ControlTemplate, все виды Trigger, Converter и всё слишком закручено, с нарушением стандартов создания контрола но работает(у меня так изначально было)