如下:
<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib" Title="MainWindow" Height="350" Width="525"> <Window.Resources> <Style TargetType="Button"> <Style.Triggers> <Trigger Property="IsPressed" Value="True"> <Setter Property="FontSize" Value="36"></Setter> <Setter Property="Background" Value="Red"></Setter> </Trigger> </Style.Triggers> </Style> </Window.Resources> <Grid> <Button Background="Green" Content="Hight Value" x:Name="btnVisible" Margin="250,154,167,114" /> </Grid> </Window>
定义一个style 里面有个触发器当IsPressed为ture的时候(按钮按下) 设置字体大小和背景颜色
但是实际运行效果为什么 点击后字体变了而背景颜色却没有呢?
<Window.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="{TemplateBinding Background}" Name="BkgBorder">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="BkgBorder" Property="Background" Value="Red"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="Red"/>
<Setter Property="FontSize" Value="32"/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<Button Background="Green" Content="Hight Value" x:Name="btnVisible" Margin="250,154,167,114" />
</Grid>
除非重写Button的Template, 不然这个背景颜色是该不了的
事件:ispressed是什么状态?从字面理解是:按下状态。
那么,你检测这个是否是在按下状态呢?比如,你是长按按钮没效果还是点按呢?
简单的实验了下,长按下是有字体大小效果的,只是背景颜色的效果没有,估计是被over事件覆盖了。