2017-02-27 6 views
0

2つのMouseEventを作成しましたが、動作していますが、問題は動作していないと思います。マウスポインタがグリッドスペースにあるときにこれらの2つのイベントをアクティブにする必要がありますが、ポインタがいずれのラインにある場合にのみ動作します。C#WPF MouseEnterとMouseLeave on Grid

私のコード:

  // 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; 
    } 

答えて

3

透明にあなたのグリッドの背景色を設定し、これはグリッドがマウスイベントをキャプチャすることができます。

関連する問題