gpt4 book ai didi

wpf - 在不破坏 ControlTemplate 的情况下将 setter 添加到 Control 的样式

转载 作者:行者123 更新时间:2023-12-05 04:17:33 25 4
gpt4 key购买 nike

我有进度条的全局模板,但在其中一个我必须将它的颜色绑定(bind)到另一个元素的状态。似乎如果我更改 ProgressBar 的样式,它就会丢失 ControlTemplate。我在这里缺少什么?

<Style TargetType="ProgressBar">           
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ProgressBar">
<Border Name="PART_Track" ... Background="{TemplateBinding Background}" >
<Rectangle Name="PART_Indicator" ... Fill="{TemplateBinding Foreground}" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>

<ProgressBar x:Name="PBar" Background="#d8d8d8">
<ProgressBar.Resources>
<Style TargetType="{x:Type ProgressBar}" >
<Setter Property="Foreground" Value="#6CC655"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=toggleX, Mode=OneWay}" Value="True">
<Setter Property="Foreground" Value="#FFFFFF"/>
</DataTrigger>
</Style.Triggers>-->
</Style>
</ProgressBar.Resources>

最佳答案

您可以使用 BasedOn继承默认样式。这样您将获得以基本样式定义的所有属性,包括 ControlTemplate:

<ProgressBar.Resources>
<Style TargetType="{x:Type ProgressBar}"
BasedOn="{StaticResource {x:Type ProgressBar}}">
....
</ProgressBar.Resources>

关于wpf - 在不破坏 ControlTemplate 的情况下将 setter 添加到 Control 的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22438326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com