Wpf 属性触发器中按钮的前景未更改
为什么触发会起作用(鼠标结束时将按钮的前景更改为“红色”)Wpf 属性触发器中按钮的前景未更改,wpf,button,triggers,Wpf,Button,Triggers,为什么触发会起作用(鼠标结束时将按钮的前景更改为“红色”) 但当按钮的前景被设置为颜色(在本例中为“蓝色”)时,该触发器不是吗 按钮的本地值覆盖样式。尝试: <Grid> <Grid.Resources> <Style TargetType="{x:Type Button}"> <Setter Property="Foreground" Value="Blue"/> &l
但当按钮的前景被设置为颜色(在本例中为“蓝色”)时,该触发器不是吗
按钮的本地值覆盖样式。尝试:
<Grid>
<Grid.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Foreground" Value="Blue"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</Grid.Resources>
<Button Content="Hello"/>
</Grid>
我知道这是一篇老文章,但这是解决方案(在属性触发器中)。答复:
<Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="Blue"/>
最合乎逻辑的方法是:
<Setter Property="Foreground" Value="Blue"/>
但是。。不工作..只需添加一个控件模板,然后以您的样式将
ContentPresenter
的TextElement.前台
绑定到{TemplateBinding前台}
:
<Grid>
<Grid.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter TextElement.Foreground="{TemplateBinding Foreground}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</Grid.Resources>
<Button Content="Hello"/>
</Grid>
我不确定,但我认为最好删除除英语以外的特定语言的句子。
<Setter Property="Foreground" Value="Blue"/>
<Grid>
<Grid.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter TextElement.Foreground="{TemplateBinding Foreground}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</Grid.Resources>
<Button Content="Hello"/>
</Grid>