Как мне изменить представление WPF о стиле по умолчанию для элемента управления? И почему это происходит в первую очередь? В приведенном ниже XAML я объявляю стиль для кнопки, а затем дополнительно объявляю новый стиль, который переопределяет один из сеттеров, называемый "HugeBut". Я ожидаю, что HugeBut неявно основан на моем новом безымянном стиле, но, очевидно, это не так;
<Window.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="Red">
<ContentPresenter/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- badness -->
<Style TargetType="{x:Type Button}" x:Key="HugeBut">
<Setter Property="Foreground" Value="Yellow"/>
</Style>
<!-- works, but I do not want to explicitly set the based-on. -->
<Style TargetType="{x:Type Button}" x:Key="HugeBut" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Foreground" Value="Yellow"/>
</Style>
</Window.Resources>
<Button Content="Regular" />
<Button Content="huge!" Style="{StaticResource HugeBut}"/>
Можно ожидать две красные кнопки, одну с черным текстом и одну с желтым, но Style HugeBut наследует все значения, которые я не указал в своем безымянном стиле, из системной темы по умолчанию для кнопки (Aero в моем случае).
Что я могу сделать, чтобы изменить это поведение?