繁体   English   中英

如何在ILNumerics PlotCube中关闭默认的鼠标事件处理程序?

[英]How to turn off default Mouse Event Handlers in ILNumerics PlotCube?

我正在使用ILNumerics数学库创建一些2D图。 为了显示数据,我使用ILPlotCube类。 我想为MouseDoubleClick事件关闭EventHandler的默认行为,因为我想实现自己的行为。 那可能吗?

这里是一些更多的上下文:

用于MouseDoubleClick事件的ILPlotCube的默认事件处理程序会将视图重置为默认值。 通常,此方法效果很好,但是x和y值非常小似乎存在问题。 当我添加具有非常小的y值的linePlot时,图的限制会自动设置为YMax = 0.525和YMin = -0.525。 不幸的是,这不是我想要的。 因此,我在添加linePlot之后自行设置值,并且该图看起来完全像我想要的那样。 很好...但是:如果我双击场景,它将再次使用默认(0.525)值。 面团! 这就是为什么我想关闭或覆盖此行为。

有任何想法吗?

   private void ilPanel1_Load(object sender, EventArgs e)
    {
        var scene = new ILScene();
        //data with very small "y-values"
        ILArray<float> line1 = new float[,] { 
                    {0.0f,  1.0f, 2.0f }, 
                    {2.042166e-08f,  2.070141e-08f , 2.042166e-08f} };

        var linePlot1 = new ILLinePlot(line1.T,
           lineColor: Color.Blue,
           lineWidth: 3,
           markerStyle: MarkerStyle.Dot);
        //Create Plot Cube
        var plotCube = new ILPlotCube();

        plotCube.Add(linePlot1);
        //plotCube.Plots.Limits.YMax is now 0.525
        //plotCube.Plots.Limits.YMin is now -0.525

        //manually set the value
        float maxY = 0.0f;
        using (ILScope.Enter())
        {
            var aPos = linePlot1.Line.Positions.Storage["1;:"];
            maxY = ILMath.max(aPos).FirstOrDefault();
        }

        plotCube.Plots.Limits.YMax = maxY;
        plotCube.Plots.Limits.YMin = 0.0f;
        var plot = scene.Add(plotCube);

        ilPanel1.Scene = scene;
    }

谢谢,

蒂姆

ILNumerics中的所有节点都提供对公用鼠标处理程序的访问,您可以使用它们提供自己的逻辑-或仅禁用现有的单个处理程序。 在您的情况下,您可以覆盖绘图多维数据集的双击处理程序:

// ....

plotCube.MouseDoubleClick += (_e, _a) => {
    _a.Cancel = true; 
};
// you may want disable zoom and pan as well? 
plot.AllowZoom = false;
plot.AllowPan = false; 

// continue with your code here...
ilPanel1.Scene = scene;

ILNumerics中的鼠标处理程序实际上非常灵活和强大。 请参阅此处的文档: http : //ilnumerics.net/mouse-events.html

@Edit:根据您的情况, ILPlotCube.AutoScaleOnAdd属性也可能很有趣。 它确定是否在将新图添加到图多维数据集中后是否重新计算图多维数据集限制。 您可能会发现false更方便。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM