当我将鼠标悬停在标签上时,我正试图更改标签文字的颜色。我尝试将命令放在previewmousemove事件中,但这不起作用。
private void hand_PreviewMouseMove(object sender, PreviewMouseEventArgs e)
{
Cursor.Current = Cursors.Hand;
xrLabel260.BackColor = Color.CornflowerBlue;
}
在此之后无效,我尝试使用mouseenter / mouseleave事件来改变颜色。
private void xrLabel260_MouseEnter(object sender, EventArgs e)
{
xrLabel260.ForeColor = Color.CornflowerBlue;
}
private void xrLabel260_MouseLeave(object sender, EventArgs e)
{
xrLabel260.ForeColor = Color.Black;
}
这也不起作用。我怎么能改变我的代码以便它能够工作?预先感谢您的帮助。
答案 0 :(得分:1)
我个人会在你的xaml中做这样的事情: 编辑:我修改了这个以显示它如何适合主窗口。
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Label Content="My Label">
<Label.Style>
<Style TargetType="Label">
<Setter Property="Foreground" Value="Black"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="Blue"/>
</Trigger>
</Style.Triggers>
</Style>
</Label.Style>
</Label>
</Grid>
答案 1 :(得分:1)
好像你没有为它添加事件处理程序(为标签注册鼠标事件):
xrLabel260.MouseEnter += xrLabel260_MouseEnter;
最合乎逻辑的地方是表单的加载例程。
编辑:对于WPF,你可以在XAML中有这样的东西(问题有EventArgs而不是MouseEventArgs,我认为它适用于WinForms):
<Label x:Name="xrLabel260" Content="Label" MouseEnter="xrLabel260_MouseEnter"/>
...然后在代码隐藏中:
private void xrLabel260_MouseEnter(object sender, MouseEventArgs e)
{
xrLabel260.Foreground = Brushes.BlanchedAlmond;
}