触发样式更改元素的所有样式

trigger style changes all the styles of an element

我正在尝试通过使用 样式触发器 来更改 Expanders 的背景颜色并且它有效但它改变了 Expander 的所有原始样式。

我在 XAML 扩展器中使用 Material 设计,当我尝试更改 Expander 的背景颜色时,它完全改变了 Expander 样式。 请帮助我如何在使用样式触发器时仅更改一种样式而不更改元素的所有样式。

风格触发器

<Style x:Key="ExpenderColor" TargetType="Expander">
    <Setter Property="Background" Value="black"/>
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" Value="Aqua"/>
        </Trigger>
    </Style.Triggers>
</Style>

应用样式

 <Expander Style="{DynamicResource ExpenderColor}" Margin="0 5 0 0" 
           HorizontalAlignment="Stretch">
    <Expander.Header>
         <StackPanel Orientation="Horizontal">
            <materialDesign:PackIcon Kind="Home" />
            <TextBlock Margin="15 0 0 0">DASHBOARD</TextBlock>
         </StackPanel>
    </Expander.Header>
 </Expander>

图片

原始Material设计扩展

添加样式后属性

尝试将 BasedOn="{StaticResource {x:Type Expander}}" 设置为您的 ExpenderColor 样式。

<Style x:Key="ExpenderColor" TargetType="Expander" 
       BasedOn="{StaticResource {x:Type Expander}}">
    <Setter Property="Background" Value="black"></Setter>
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" Value="Aqua"> </Setter>
        </Trigger>
    </Style.Triggers>
</Style>