从基本样式派生样式失败 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}}"/>
我刚刚意识到在我的 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}}"/>