我开发了一个 WPF 应用程序,该应用程序在二维图表上绘制文件中的数据。用户可以使用鼠标进行缩放和平移。可以将多个绘图加载到 WPF 选项卡控件的不同选项卡中。绘图本身由 TabItem 中的网格保存。
每次我读取文件并生成相应的图表时,我也会将鼠标事件连接到保存图表的网格。
碰巧鼠标事件变为连接到上次加载的图表,当我选择返回任何其他 TabItem 时,我无法控制(缩放/平移)它。
我没有找到将鼠标事件重新连接到我切换回的 TabItem 中的网格的方法。
我将不胜感激任何提示。
莫蒂
也许您可以将处理程序连接到网格的 MouseEnter 事件。之后,您可以挂接鼠标事件。
创建网格时:
grid.MouseEnter="Grid_MouseEnter"
鼠标输入处理程序:
private void Grid_MouseEnter(object sender, MouseEventArgs e)
{
var grid = sender as Grid;
if (grid == null)
return;
grid.MouseWheel += a1_MouseWheel;
}
鼠标滚轮处理程序
private void a1_MouseWheel(object sender, MouseWheelEventArgs e)
{
var grid = sender as Grid;
System.Diagnostics.Debug.WriteLine(grid.Name + " " + e.Delta);
}
我猜你从网格的鼠标事件中删除处理程序!?