gpt4 book ai didi

wpf - 如何更改 ContentPresenter 颜色 WPF

转载 作者:行者123 更新时间:2023-12-01 08:05:55 25 4
gpt4 key购买 nike

我在 WPF 中有一个自定义按钮。在禁用状态下,我希望它的内容颜色发生变化,但我无法做到这一点。我正在使用 Blend for Visual Studio。当我去编辑模板并选择 contentPresente 的画笔颜色时,它说该值无效。我怎样才能做到这一点 ?我试图在 XAML 中更改它,这是我使用的代码,但有一个错误。

<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="contentPresenter">
<EasingColorKeyFrame KeyTime="0" Value="Black" />
</ColorAnimationUsingKeyFrames>

最佳答案

ContentPresenter本身没有任何视觉 Style的。它只是 Content 的占位符的ControlStyle它所在的位置。

修改Foreground在您的自定义ButtonStyle.ControlTemplate ,您可以使用附加属性 TextElement.ForegroundContentPresenterTrigger对于 IsEnabled="False"

...
<ControlTemplate.Triggers>
...
<Trigger Property="IsEnabled"
Value="False">
<Setter TargetName="contentPresenter"
Property="TextElement.Foreground"
Value="Red" />
</Trigger>
</ControlTemplate.Triggers>
...

您也可以通过 Storyboard 执行相同的操作的或 VisualStateManager通过混合相同的属性。

注:

理解这一点非常重要^^ 我们假设 Button使用这个 Style有它的 Content作为一些文本。如果您的 Button.Content是别的东西吗 FrameworkElement (比如 ComboBox )你不会看到它变成“红色”。

关于wpf - 如何更改 ContentPresenter 颜色 WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17134224/

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