Как вы знаете, все встроенные темы определяют стили для стандартных элементов управления, таких как элемент управления TreeView. Мы пытаемся создать что-то, что выглядит очень похожим на TreeView, но на самом деле не является таковым и не является его подклассом. В нем просто есть части, которые мы хотим выглядеть как единое целое.
Например, наш элемент управления также имеет выбранный элемент, фон которого мы хотели бы сопоставить с внешним видом фона для выбранного элемента в TreeView (или, точнее, TreeViewItem) для текущей темы. (Вы не можете просто использовать цвет подсветки, поскольку у тем есть красивые градиентные кисти и границы, а не только сплошная кисть.) То же самое с нашими кнопками переключения / разворачивания. Мы хотим, чтобы они выглядели так же, как те, что используются в TreeView для текущей темы. (то есть иногда треугольник, иногда прямоугольник с «+» и т. д.)
Теперь, когда мы можем просто разорвать Expression и скопировать стили сами (или, по крайней мере, те части, которые нам нужны), нам придется делать это для каждой темы, которую предоставляет MS. Кроме того, это не будет обрабатывать новые темы. И с чистой точки зрения, это дублирующая информация о стилях, которая просто ошибается со мной.
Также, если кто-то стилизует фактический TreeView (Item), мы также хотим его забрать. Так как части, которые мы хотим стилизовать, являются необходимыми частями TreeView, мы уверены, что они где-то в стиле.
Даже не уверен, что то, что я хочу сделать, возможно, но если кто-то знает, они, скорее всего, здесь, на SO!