首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF样式触发器在IsPressed上设置按钮前台,但不设置背景

问WPF样式触发器在IsPressed上设置按钮前台,但不设置背景
EN

Stack Overflow用户
提问于 2017-03-27 16:02:28
回答 2查看 1.4K关注 0票数 0

我有下面的XAML代码,它用一个按钮创建一个窗口。当我单击该按钮时,前景颜色会更改为红色,但背景色不会改变。为什么其中一种改变,而不是另一种?

代码语言:javascript
复制
<Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfExperiments"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid Margin="0,0,0,2">
        <Grid.Resources>
            <Style x:Key="ButtonStyle" TargetType="Button">
                <Style.Triggers>
                    <Trigger Property="IsPressed" Value="True">
                        <Setter Property="Foreground" Value="Red"/>
                        <Setter Property="Background" Value="Red"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Grid.Resources>
        <Button Style="{StaticResource ButtonStyle}" 
                Content="Button"
                HorizontalAlignment="Left"
                Margin="135,97,0,0"
                VerticalAlignment="Top"
                Width="75"
                />
    </Grid>
</Window>

当然,这是我第一次在谷歌上搜索。我发现的大多数修复方法是使用模板而不是样式,如果这是解决方案的话,我当然愿意这么做。但我在one SO answer中注意到,按钮具有覆盖样式值的默认模板。如果是的话,为什么我的XAML会影响前景?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-27 18:05:33

前台不会受到影响,因为按钮的默认模板在按下按钮时不会更新前台。它只更新背景。

默认模板的触发器是在样式触发器之后执行的,这就是为什么您的背景不受样式影响的原因。

更多的解释在这里

http://harishasanblog.blogspot.com/2011/02/ismouseover-trigger-not-working-in-wpf.html

票数 0
EN

Stack Overflow用户

发布于 2017-03-27 16:33:45

在Button的模板(ControlTemplate)中,有可能一些触发器会将背景更改为不同的颜色。从“力量”的角度来看,它比风格的触发更强,这就是它发挥作用的原因。试着用你发布的"ButtonStyle“样式编辑按钮的模板,然后把你的触发器放在那里。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43051236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档