Использование свойства BasedOn со стилем, определенным в другом словаре
Приложение, над которым я работаю, имеет 2 ResourceDictionary, DefaultStyles.xaml и пользовательские стили.код XAML.
Возможно ли, что стиль в словаре CustomStyles использует базовый стиль, определенный в другом словаре?
DefaultStyles.xaml:
<Style x:Key="TextBlockDefaultStyle" TargetType="TextBlock">
<Setter Property="Margin" Value="4" />
</Style>
Обычаи.xaml:
<Style x:Key="SectionTitleStyle" TargetType="TextBlock" BasedOn="{StaticResource TextBlockDefaultStyle}">
<Setter Property="FontSize" Value="16" />
</Style>
Приложение.xaml:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/Styles/DefaultStyles.xaml"/>
<ResourceDictionary Source="Assets/Styles/CustomStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
При выполнении кода возникает следующее исключение:
Не удается найти ресурс с именем / ключом TextBlockDefaultStyle.
Он хорошо работает, если оба стиля находятся в одном файле.
1 ответ:
Вам нужно напрямую ссылаться на словарь с другим стилем.
Нестандартные стили.xaml:
<ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="DefaultStyles.xaml" /> </ResourceDictionary.MergedDictionaries> <Style x:Key="SectionTitleStyle" TargetType="TextBlock" BasedOn="{StaticResource TextBlockDefaultStyle}"> <Setter Property="FontSize" Value="16" /> </Style>