gpt4 book ai didi

WPF 按钮样式未应用于子元素

转载 作者:行者123 更新时间:2023-12-04 02:01:59 24 4
gpt4 key购买 nike

我有一个这样的按钮样式

<Style x:Key="NormalButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid x:Name="ContentSite">
<Grid x:Name="ContainerGrid">
<ContentPresenter x:Name="Presenter" Style="{DynamicResource NormalButtonTextStyle}"/>
...

ContentPresenter 的样式在哪里
<Style x:Key="NormalButtonTextStyle" BasedOn="{StaticResource DefaultFontStyle}">
<Setter Property="TextElement.Foreground" Value="{DynamicResource NormalTextOnDarkBackgroundBrush}" />
...

然后我像这样定义了我的按钮
<Button Style="{StaticResource NormalButtonStyle}">
<Button.Content>
<TextBlock Text="Cancel"/>
...

但是 TextBlock 并没有以 NormalButtonTextStyle 结束风格。我在运行时检查了元素,内容展示者肯定有正确的文本前景,但随后子 TextBlock 最终继承了完全不同的东西,并获得了 ControlTextBrush 的前景。 .

我是否误解了样式如何应用于子元素?我应该如何定义按钮以便正确应用样式?

最佳答案

添加 <Setter />Button style :

<Style x:Key="NormalButtonStyle" TargetType="{x:Type Button}">
<Setter Property="TextElement.Foreground" Value="{DynamicResource NormalTextOnDarkBackgroundBrush}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid x:Name="ContentSite">
<Grid x:Name="ContainerGrid">
<ContentPresenter x:Name="Presenter" />
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

关于WPF 按钮样式未应用于子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46489552/

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