【发布时间】:2017-11-15 17:33:08
【问题描述】:
我已经制作了一个程序,您可以在其中询问省略号的数量,并在 c# 中将它们显示在不同的窗口中,但我想要鼠标悬停效果 - 我理解它被称为:MouseEnter 和 onclick 事件,我理解称为 MouseDown,但我做了一个省略号数组并尝试了以下操作:
namespace WpfApp1
{
/// <summary>
/// Interaction logic for Window2.xaml
/// </summary>
public partial class Window2 : Window
{
int numOfElipses;
public Window2()
{
InitializeComponent();
numOfElipses= MainWindow.numOfElipse;
Ellipse[] ellipsePoints = new Ellipse[numOfElipses];
Random rnd = new Random();
for (int i=0;i<numOfElipses; i++)
{
SolidColorBrush brush =
new SolidColorBrush(
Color.FromRgb(
(byte)rnd.Next(255),
(byte)rnd.Next(255),
(byte)rnd.Next(255)
));
var top = rnd.Next(0, 280);
var left = rnd.Next(0, 450);
ellipsePoints[i] = new Ellipse();
ellipsePoints[i].Width = 40;
ellipsePoints[i].Height = 40;
Canvas.SetTop(ellipsePoints[i], i);
Canvas.SetLeft(ellipsePoints[i], i*45);
ellipsePoints[i].Fill = brush;
c1.Children.Add(ellipsePoints[i]);
}
}
private void E1_MouseEnter(object sender, MouseEventArgs e)
{
Random r = new Random();
Ellipse ellipsePoints = (Ellipse)sender;
ellipsePoints.Fill = new
SolidColorBrush(Color.FromRgb((byte)r.Next(255), (byte)r.Next(255),
(byte)r.Next(255)));
}
private void E1_MouseDown(object sender, MouseButtonEventArgs e)
{
c1.Children.Remove((Ellipse)sender);
}
}
}
但它不起作用。谁能解释为什么以及如何让它在鼠标悬停(悬停)时随机改变颜色,并在鼠标点击时消失/被删除? 非常感谢任何帮助!
【问题讨论】:
-
不起作用有点不清楚。当您尝试运行此程序时会发生什么?
-
你真的把事件联系起来了吗?仅仅创建方法不会做任何事情。
-
当我尝试运行它时,我可以看到不同(随机)颜色的椭圆,就像我在循环中所做的那样,但是每当我将鼠标悬停在其中一个椭圆上或单击它们时,什么都没有发生。所以循环并且一切正常,只是事件没有。也许它无法识别我当前所在的对象,尽管我认为发件人应该负责处理。
-
连接事件是什么意思?我是初学者,所以我对 c# 了解不多。
标签: c# arrays onclick mouseevent mouseover