C# 单击行为后的wpf按钮
我正在做一个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
<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>