Псевдоним или ссылка в ResourceDictionary
Я ищу способ по существу дать предмет в ResourceDictionary
несколько ключей. Есть ли способ сделать это?
<DataTemplate x:Key="myTemplate" ... />
<AliasedResource x:Key="myTemplateViaAlias" Target="myTemplate" OR_Target={StaticResource myTemplate} />
Когда я звоню TryFindResource("myTemplateViaAlias")
Я хочу получить мой шаблон. Я полагаю, я мог бы создать AliasedResource
классифицировать себя и разыменовывать его в коде, когда я получаю его из словаря, но я бы предпочел этого не делать, если есть встроенный способ.
2 ответа
Вы можете передавать ресурсы через динамические ресурсы (обратите внимание, что дрянным дизайнерам UI это не понравится)
<Color x:Key="color">Red</Color>
<DynamicResource x:Key="mycolor" ResourceKey="color"/>
<Rectangle Width="100" Height="100">
<Rectangle.Fill>
<SolidColorBrush Color="{StaticResource color}"/>
</Rectangle.Fill>
</Rectangle>
<Rectangle Width="100" Height="100">
<Rectangle.Fill>
<SolidColorBrush Color="{StaticResource mycolor}"/>
</Rectangle.Fill>
</Rectangle>
Я не знаю, как это сделать.
Однако, если ваша цель - создать несколько шаблонов для нескольких элементов управления, возможно, вы ошиблись.
Вы можете иметь несколько ресурсов (шаблоны данных и динамические ресурсы) с одним и тем же глобально названным ключом или ключом по умолчанию (тип класса элемента управления) для стилей, а затем загружать отдельный файл словаря ресурсов в каждый элемент управления / регион / вкладку / окно во время выполнения.,