Я хочу повторно использовать некоторый фрагмент XAML как изображение в некотором приложении / библиотеке WPF.
История проблемы следующая:
Легко повторно использовать растровое изображение в приложении WPF. Изображение может быть добавлено в качестве ресурса, я могу использовать <Image Source="packURI"/>
во многих местах в XAML, поэтому изображение будет таким же.
Но я бы хотел иметь возможность сделать то же самое для векторного изображения. Само изображение может быть представлено как Path
, но я не могу повторно использовать тот же Path
в качестве ресурса, потому что использование его в нескольких разных местах (и, возможно, из нескольких потоков пользовательского интерфейса) запрещено (элемент пользовательского интерфейса может иметь только один родитель).
Более того, вопрос усложняется, если я хочу построить «образ» из нескольких Path
с, используйте для него Canvas
. Или какой-нибудь произвольный код XAML.
Я попытался использовать Style
для Path
, поэтому изображение представляется следующим образом:
<Path Style={StaticResource VectorImage1}/>
Это, похоже, способ многократного использования, но меня беспокоят две проблемы:
- Если реализация векторного изображения изменяется с
Path
на (например) Canvas
, мне нужно будет заменить его не только в стиле, но и везде в исходном коде, который его использует.
- Определение пути с использованием стиля представляется слишком многословным.
- Я не вижу возможности обобщить этот подход для использования
Canvas
или произвольного кода XAML.
- Синтаксис кажется довольно неестественным.
Существует другой способ получить повторно используемый фрагмент XAML, через определение UserControl
, но определение отдельного пользовательского элемента управления для каждого векторного изображения представляется излишним.
Есть ли лучший, хороший, правильный способ определения многократно используемого фрагмента XAML?