Кажется, у вас нет содержимого этой кнопки, поэтому у вас есть шаблон для каждой иконки, которую вы будете использовать.
Это ошибка.
Вы можете упростить то, что у вас естьв любом случае, установите путь растяжения, и он заполнит свой контейнер, так что вы можете потерять окно просмотра.
По сути, вам нужны свойства вашего пути - геометрия (данные для пути), заливка, сток ивсе, что вы используете в других шаблонах.
Либо.
Создайте IconButton или что-то еще, наследуя Button и добавив свойства зависимостей для этих свойств.
Или
Класс, который присоединяет эти свойства зависимостей.
Переместите все ваши геометрии в словарь ресурсов и дайте им ключи.
Вот пример
<Geometry x:Key="FlowRight">
M1.265625,12.9837493896484L95.625,50.7181243896484 1.265625,88.5462493896484 24.375,50.7181243896484 1.265625,12.9837493896484z
</Geometry>
Затем вы можете использоватьэто как StaticResource.
Вы можете иметь один шаблон IconButton.Определите стили, задайте геометрию и кисти, если у вас много (скажем) плюсовых кнопок значков.
или
Вы можете просто установить или связать эти свойства непосредственно на Button / IconButton, которая использует вашшаблон.
или
Сделайте оба.Установите одно или два свойства, чтобы переопределить их в общем стиле.
Возможно, это недостаточно гибко для того, что вы хотите сделать.
Вы можете использовать ContentControl и Styles / Templatesдля этого, чтобы определить содержимое в ваших шаблонах.
Вы можете добавить ContentPresenter к вашему шаблону, и все, что вы установили для содержимого своей кнопки, будет отображаться в этом.