Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#WPF鼠标器和鼠标器在网格上移动_C#_Wpf_Grid_Mouseevent_Eventhandler - Fatal编程技术网

C#WPF鼠标器和鼠标器在网格上移动

C#WPF鼠标器和鼠标器在网格上移动,c#,wpf,grid,mouseevent,eventhandler,C#,Wpf,Grid,Mouseevent,Eventhandler,我做了两个鼠标事件,它们工作正常,但问题是,它们的工作不像我预期的那样。当鼠标指针正好在网格空间中时,我需要这两个事件处于活动状态,但现在它们仅在指针位于任何一行时才起作用 我的代码: // Grid 3 Rows. Grid grid_Edit = new Grid(); Grid.SetRow(grid_Edit, 0); Grid.SetColumn(grid_Edit, 1); RowDefiniti

我做了两个鼠标事件,它们工作正常,但问题是,它们的工作不像我预期的那样。当鼠标指针正好在网格空间中时,我需要这两个事件处于活动状态,但现在它们仅在指针位于任何一行时才起作用

我的代码:

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

将网格的背景色设置为透明,这将允许网格捕获鼠标事件。

将网格的背景色设置为透明,这将允许网格捕获鼠标事件