C# 单击行为后的wpf按钮

C# 单击行为后的wpf按钮,c#,css,wpf,xaml,button,C#,Css,Wpf,Xaml,Button,我正在做一个wpf程序,我做了一个自定义样式按钮: <Style x:Key="ButtonMio" TargetType="{x:Type Button}"> <Setter Property="Padding" Value="1"/> <Setter Property="Background" Value="Transparent" /> <Setter Property="Foreground" Va

我正在做一个wpf程序,我做了一个自定义样式按钮:

<Style x:Key="ButtonMio" TargetType="{x:Type Button}">
        <Setter Property="Padding" Value="1"/>
        <Setter Property="Background" Value="Transparent" />
        <Setter Property="Foreground" Value="Transparent"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Border Name="border" Background="{TemplateBinding Background}">
                        <ContentPresenter Name="content" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                  Margin="{TemplateBinding Padding}"
                                  RecognizesAccessKey="True"
                                  SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
                                  VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">

                            <Setter Property="Background" Value="#FF3EC8C6" />
                            <Setter Property="Foreground" Value="Transparent"/>
                        </Trigger>
                        <Trigger Property="IsPressed" Value="True">

                            <Setter Property="Background" Value="Transparent" />
                            <Setter Property="Foreground" Value="Transparent"/>
                            <Setter Property="BorderBrush" Value="Transparent"/>
                        </Trigger>
                        <Trigger Property="IsFocused" Value="True">

                            <Setter Property="Background" Value="Transparent" />
                            <Setter Property="Foreground" Value="Transparent"/>
                            <Setter Property="BorderBrush" Value="Transparent"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

嗯,这个按钮有一个图像作为内容(所以它比真正的按钮小)。由于背景是透明的,我在鼠标悬停触发器中写道:

<Setter Property="Background" Value="#FF3EC8C6" />

它是有效的。但只有在点击之前。点击后,没有更多的背景。即使单击其他按钮并使第一个按钮失去焦点(我认为),背景仍然不会出现。 我厌倦了更改“IsPressed”和“IsFocused”,但在第一种情况下,背景不会在单击后消失,在第二种情况下,没有什么,因为我不使用tab来聚焦元素


真对不起我的英语。希望一切都清楚。谢谢

触发器的声明顺序是个问题

 <ControlTemplate.Triggers>
      <Trigger Property="IsMouseOver" Value="True">
         <Setter Property="Background" Value="#FF3EC8C6" />    
      </Trigger>
      <Trigger Property="IsPressed" Value="True">
         <Setter Property="Background" Value="Transparent" />        
      </Trigger>
      <Trigger Property="IsFocused" Value="True">
         <Setter Property="Background" Value="Transparent" />
      </Trigger>
 </ControlTemplate.Triggers>

IsMouseOver发生在IsFocused启动并使背景透明之后

试着这样做:

      <ControlTemplate.Triggers>
     <Trigger Property="IsFocused" Value="True">
         <Setter Property="Background" Value="#FF3EC8C6" />                    </Trigger>
      <Trigger Property="IsPressed" Value="True">
         <Setter Property="Background" Value="Transparent" />        
      </Trigger>
      <Trigger Property="IsMouseOver" Value="True">
         <Setter Property="Background" Value="Transparent" />
      </Trigger>
 </ControlTemplate.Triggers>