J'ai fait 2 MouseEvents, ils travaillent, mais le problème, qu'ils travaillent pas comme je l'ai prévu. J'ai besoin de ces 2 événements pour être actifs quand mon pointeur de souris est juste dans l'espace de grille, mais maintenant ils ne fonctionnent que si le pointeur est sur n'importe quelle ligne.C# WPF MouseEnter et MouseLeave sur la grille
mon code:
// Grid 3 Rows.
Grid grid_Edit = new Grid();
Grid.SetRow(grid_Edit, 0);
Grid.SetColumn(grid_Edit, 1);
RowDefinition rowDef1 = new RowDefinition();
RowDefinition rowDef2 = new RowDefinition();
RowDefinition rowDef3 = new RowDefinition();
grid_Edit.RowDefinitions.Add(rowDef1);
grid_Edit.RowDefinitions.Add(rowDef2);
grid_Edit.RowDefinitions.Add(rowDef3);
grid_Edit.RowDefinitions[0].Height = new GridLength(1, GridUnitType.Star);
grid_Edit.RowDefinitions[1].Height = new GridLength(1, GridUnitType.Star);
grid_Edit.RowDefinitions[2].Height = new GridLength(1, GridUnitType.Star);
grid_Edit.MouseEnter += new MouseEventHandler(gridEdit_MouseEnter);
grid_Edit.MouseLeave += new MouseEventHandler(gridEdit_MouseLeave);
mainWindow_ref.Children.Add(grid_Edit);
// 3 lines
line1.Stroke = Brushes.White;
line1.X1 = 1;
line1.Stretch = Stretch.Fill;
Grid.SetRow(line1, 0);
line1.VerticalAlignment = VerticalAlignment.Center;
line2.Stroke = Brushes.White;
line2.X1 = 1;
line2.Stretch = Stretch.Fill;
Grid.SetRow(line2, 1);
line2.VerticalAlignment = VerticalAlignment.Center;
line3.Stroke = Brushes.White;
line3.X1 = 1;
line3.Stretch = Stretch.Fill;
Grid.SetRow(line3, 2);
line3.VerticalAlignment = VerticalAlignment.Center;
// add lines to grid_Edit
grid_Edit.Children.Add(line1);
grid_Edit.Children.Add(line2);
grid_Edit.Children.Add(line3);
private static void gridEdit_MouseLeave(object sender, MouseEventArgs e)
{
line1.Stroke = Brushes.White;
line2.Stroke = Brushes.White;
line3.Stroke = Brushes.White;
}
private static void gridEdit_MouseEnter(object sender, MouseEventArgs e)
{
line1.Stroke = Brushes.Black;
line2.Stroke = Brushes.Black;
line3.Stroke = Brushes.Black;
}