在WPF TabControl中将事件重新连接到Selected TabItem

时间:2012-05-02 15:49:26

标签: wpf charts event-handling wpf-controls

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

每次我读文件并生成相应的图表时,我也将鼠标事件连接到包含图表的网格。

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

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

我很感激任何暗示。

莫蒂

1 个答案:

答案 0 :(得分: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中删除了处理程序!?