从基本样式派生样式失败 WPF

Deriving style from base style fails WPF

我刚刚意识到在我的 WPF 应用程序中从默认样式派生失败,我不知道为什么。实际上它有效,但只是由于“热重载”。所以我有:

<Style TargetType="ComboBox" x:Key="TestStyle" BasedOn="{StaticResource {x:Type ComboBox}}"/>

<Style TargetType="ComboBox">
    <Setter Property="Width" Value="100"/>
</Style>

在资源字典中,并且:

<ComboBox Style="{StaticResource TestStyle}">
    <ComboBoxItem>test</ComboBoxItem>
    <ComboBoxItem>I want to cry with blood</ComboBoxItem>
</ComboBox>

在我的掌控之中。当我启动应用程序时,我看到以下内容:



当我删除 BasedOn="{StaticResource {x:Type ComboBox}}" 并再次添加时,我有正确的看法:



这种行为的原因是什么?看起来像 WPF 错误,但我认为这是不可能的

要找到正确的样式,您需要在“TestStyle”之前定义它

<Style TargetType="ComboBox">
    <Setter Property="Width" Value="100"/>
</Style>

<Style TargetType="ComboBox" x:Key="TestStyle" BasedOn="{StaticResource {x:Type ComboBox}}"/>