我开发了一个WPF应用程序,用于绘制二维图表上文件的数据。 用户可以使用鼠标进行缩放和平移。 可以将多个图形加载到WPF TabControl的不同选项卡中。图形本身由TabItem中的Grid保持。
每次我读文件并生成相应的图表时,我也将鼠标事件连接到包含图表的网格。
碰巧鼠标事件转为连接到最后加载的图表,当我选择回任何其他TabItem时,我无法控制(缩放/平移)它。
我没有找到在我切换回的TabItem中将鼠标事件重新连接到Grid的方法。
我很感激任何暗示。
莫蒂
答案 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中删除了处理程序!?