У меня установлен пакет Темы дизайна материалов, который изменяет внешний вид кнопок. Я хотел бы использовать стили с моими кнопками, но когда используется стиль, кнопка возвращается к внешнему виду по умолчанию с примененным стилем. Пример
Как мне применить стиль, не переопределяя пакет?
Главное окно
<Window.Resources>
<Style TargetType = "Button" x:Key = "redFont">
<Setter Property = "Foreground" Value = "red"/>
</Style>
</Window.Resources>
<StackPanel Orientation = "Horizontal" HorizontalAlignment = "Center" VerticalAlignment = "Center">
<Button Content = "Without style"/>
<Button Style = "{StaticResource redFont}" Content = "With style"/>
</StackPanel>
App.xaml
<Application x:Class = "WPF_TestMaterialSetterProperties.App"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri = "MainWindow.xaml">
<Application.Resources>
<ResourceDictionary Source = "pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
</Application.Resources>
</Application>
Стиль переопределяет ваш производный стиль. Вам нужно сделать свой стиль «Основанным на» стилем общего типа, чтобы наследовать стиль, который вы импортировали.
<Style TargetType = "Button" BasedOn = "{StaticResource {x:Type Button}}" x:Key = "redFont">
...
Этот пакет переопределяет тему по умолчанию, которую использует ваше приложение. Ваш новый стиль «основан на» переопределении.