将点击事件添加到多边形 class c#
add click event to polygon class c#
我有一个带多边形的 class。
我的程序打印 class 中的多边形,我想将点击事件添加到 class。单击多边形时,事件将 运行.
我想添加点击事件、扩展方法,类似这样的东西(只是代替这个点击事件):
public static class extensionMethodPolygon
{
public static void func1(this Polygon p)
{
Console.WriteLine("polygon");
}
}
但我不知道怎么办。
我做了什么:
Polygon []arr = new Polygon[72];
for (int i = 0; i < 72; i++)
{
arr[i] = allPolygons[i].Polygon;
arr[i].MouseUp += MainWindow_MouseUp;
arr[i].MouseDown+=MainWindow_MouseUp;
}
foreach (Polygon item in arr)
{
MyGrid.Children.Add(item);
}
和:
void MainWindow_MouseUp(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("Polygon");
}
但是当我点击时,事件只在部分多边形上起作用,我不知道为什么不能在所有多边形上起作用。
有人知道怎么解决这个问题吗?或者提供其他解决方案?
谢谢
Polygon 控件没有点击事件,但它有 mouse-down/mouse-up 个事件,您可以这样处理:
XAML:
<Polygon MouseDown="Polygon_MouseDown" MouseUp="Polygon_MouseUp" Width="100" Height="100"/>
隐藏代码:
private void Polygon_MouseDown(object sender, MouseButtonEventArgs args)
{
System.Windows.Forms.MessageBox.Show("Mouse Down!"); // Break Here For Debugging
Polygon obj = sender as Polygon;
this.Dispatcher.Invoke(new Action(() =>
{
obj.Width += 50;
});
}
private void Polygon_MouseUp(object sender, MouseButtonEventArgs args)
{
System.Windows.Forms.MessageBox.Show("Mouse Up!"); // Break Here For Debugging
Polygon obj = sender as Polygon;
this.Dispatcher.Invoke(new Action(() =>
{
obj.Height += 50;
});
}
然后,如果需要,您可以在 mouse-down/mouse-up 事件处理程序中包含动画。这里还有一些 Mouse-Down 的文档。
我有一个带多边形的 class。
我的程序打印 class 中的多边形,我想将点击事件添加到 class。单击多边形时,事件将 运行.
我想添加点击事件、扩展方法,类似这样的东西(只是代替这个点击事件):
public static class extensionMethodPolygon
{
public static void func1(this Polygon p)
{
Console.WriteLine("polygon");
}
}
但我不知道怎么办。
我做了什么:
Polygon []arr = new Polygon[72];
for (int i = 0; i < 72; i++)
{
arr[i] = allPolygons[i].Polygon;
arr[i].MouseUp += MainWindow_MouseUp;
arr[i].MouseDown+=MainWindow_MouseUp;
}
foreach (Polygon item in arr)
{
MyGrid.Children.Add(item);
}
和:
void MainWindow_MouseUp(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("Polygon");
}
但是当我点击时,事件只在部分多边形上起作用,我不知道为什么不能在所有多边形上起作用。
有人知道怎么解决这个问题吗?或者提供其他解决方案?
谢谢
Polygon 控件没有点击事件,但它有 mouse-down/mouse-up 个事件,您可以这样处理:
XAML:
<Polygon MouseDown="Polygon_MouseDown" MouseUp="Polygon_MouseUp" Width="100" Height="100"/>
隐藏代码:
private void Polygon_MouseDown(object sender, MouseButtonEventArgs args)
{
System.Windows.Forms.MessageBox.Show("Mouse Down!"); // Break Here For Debugging
Polygon obj = sender as Polygon;
this.Dispatcher.Invoke(new Action(() =>
{
obj.Width += 50;
});
}
private void Polygon_MouseUp(object sender, MouseButtonEventArgs args)
{
System.Windows.Forms.MessageBox.Show("Mouse Up!"); // Break Here For Debugging
Polygon obj = sender as Polygon;
this.Dispatcher.Invoke(new Action(() =>
{
obj.Height += 50;
});
}
然后,如果需要,您可以在 mouse-down/mouse-up 事件处理程序中包含动画。这里还有一些 Mouse-Down 的文档。