小编典典

WPF:有没有一种方法可以重写ControlTemplate的一部分而不重新定义整个样式?

c#

我正在尝试设置WPF xctk:ColorPicker的样式。我想在 重新定义整个样式的 情况下 更改下拉视图和文本的背景颜色。

我知道ColorPicker包含一个名为“
PART_ColorPickerPalettePopup”的零件。有没有一种方法可以直接引用我的样式中的该部分,例如 提供新的背景色?

我想避免不必重新定义“ PART_ColorPickerPalettePopup”的所有其他属性。

链接到我正在描述的ColorPicker


阅读 638

收藏
2020-05-19

共1个答案

小编典典

您可以将样式作为其他样式的基础,并覆盖特定的设置器:

<Style x:Key="myStyle" TargetType="xctk:ColorPicker" BasedOn="{StaticResource {x:Type xctk:ColorPicker}}">
    <!-- This will override the Background setter of the base style -->
    <Setter Property="Background" Value="Red" />
</Style>

但是您不能仅“覆盖” ControlTemplate的一部分。不幸的是,您必须然后重新定义整个模板。

2020-05-19