开发工具与关键技术:Visual Studio 2015
作者:王成
撰写时间:2019年5月1日
使用依赖属性:
<Grid>
<Button Height="30" Width="200" Content="鼠标移动到上面,前景色变为红色">
<Button.Style>
//定义按钮样式
<Style TargetType="Button">
//样式触发
<Style.Triggers>
//鼠标移入移出触发
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Foreground" Value="Red"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</Grid>
在判断属性IsMouseOver的值为false的时候,自动将Foreground的值改为之前的值,因此就不需要写IsMouseOver的值为false的时候,将Foreground的值改为Black
用后台代码实现相同效果:
定义两个事件:
(1)鼠标移入:
private void Button_MouseEnter(object sender, MouseEventArgs e)
{
//声明一个按钮变量,等于窗口按钮
Button btn = sender as Button;
//判断按钮不为空
if (btn != null)
{
//改变字体颜色为红色
btn.Foreground = Brushes.Red;
}
}
(2)鼠标移出:
private void Button_MouseLeave(object sender, MouseEventArgs e)
{
Button btn = sender as Button;
if (btn != null)
{
//改变字体颜色为黑色
btn.Foreground = Brushes.Black;
}
}
原按钮图:
效果图:
依赖属性的属性值继承:
<Window.Style>
<Style TargetType="Window">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="FontSize" Value="22"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Window.Style>
<Grid>
<Button Height="30" Width="200" Content="字体变大"/>
</Grid>
原按钮:
继承窗口属性后鼠标移入的按钮: