0

我开发了一个 WPF 应用程序,它在 2D 图表上绘制文件中的数据。用户可以使用鼠标进行缩放和平移。可以将多个图形加载到 WPF TabControl 的不同选项卡中。绘图本身由 TabItem 中的 Grid 保存。

每次我读取文件并生成相应的图表时,我还将鼠标事件连接到保存图表的网格。

碰巧鼠标事件转而连接到最后加载的图表,当我选择返回任何其他 TabItem 时,我无法控制(缩放/平移)它。

我没有找到将鼠标事件重新连接到我切换回的 TabItem 中的网格的方法。

我会很感激任何提示。

莫蒂

4

1 回答 1

0

也许您可以将处理程序连接到网格的 MouseEnter 事件。之后,您可以连接鼠标事件。

在创建网格时:

grid.MouseEnter="Grid_MouseEnter"

MouseEnter 处理程序:

private void Grid_MouseEnter(object sender, MouseEventArgs e)
{
    var grid = sender as Grid;
    if (grid == null)
        return;

    grid.MouseWheel += a1_MouseWheel;
}

MouseWheel 处理程序

private void a1_MouseWheel(object sender, MouseWheelEventArgs e)
{
    var grid = sender as Grid;
    System.Diagnostics.Debug.WriteLine(grid.Name + " " + e.Delta);
}

我猜你从网格的 mouseevents 中删除了处理程序!?

于 2012-05-02T16:11:00.663 回答