首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ILNumerics鼠标事件

ILNumerics鼠标事件
EN

Stack Overflow用户
提问于 2013-10-21 13:26:00
回答 1查看 197关注 0票数 0

我对鼠标事件有意见!

我订阅了活动MouseEnter和MouseLeave。如果我的鼠标光标示例位于面板的正中,那么MouseEnter和MouseLeave事件就会触发,为什么?

我的目标是感知,从鼠标光标什么时候在3D PlotCube上开始,什么时候没有。

代码:

代码语言:javascript
复制
scene.MouseEnter += ILSurface_MouseEnter;
scene.MouseLeave += ILSurface_MouseLeave;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-21 14:59:48

一个绘图立方体捕获其ScreenRect矩形的整个区域的事件。在标准设置中,此矩形设置为(0,0,1,1),填充整个面板。所以,除非你在你的面板上有多个立方体/摄像头,否则鼠标基本上总是在立方体上。

不过,为了显示MouseEnter和MouseLeave事件的功能,我将发布一个示例,该示例将用于绘图立方体中的一个绘图。当鼠标输入绘图时,它会在窗体的标题栏中写入"On绘图“。鼠标一离开情节,就写上“停止情节”。

从一个新的面板开始,并安装ILNumerics,如下所示:http://ilnumerics.net/visualization-api-quick-start-guide.html

将ILPanel拖到form1上并双击它,以便切换到自动生成的ilPanel1_Load事件处理程序的代码。用以下代码替换处理程序:

代码语言:javascript
复制
private void ilPanel1_Load(object sender, EventArgs e) {

    var surfPlot = new ILSurface(ILMath.tosingle(ILSpecialData.sincf(50, 40))) {
        Colormap = Colormaps.Prism
    }; 

    var pc = ilPanel1.Scene.Add(new ILPlotCube(twoDMode: false) {
        surfPlot
    });

    surfPlot.MouseEnter += (_s, _a) => {
        if (!_a.DirectionUp)
            Text = "On Plot - Target: " + _a.Target.ToString();
    };
    surfPlot.MouseLeave += (_s, _a) => {
        if (!_a.DirectionUp)
            Text = "Off Plot - Target: " + _a.Target.ToString();
    };
}

这将产生类似于以下图像的结果:

窗体的标题现在反映,如果鼠标是否在情节上。请注意,无论图形的旋转/形状如何,这都是有效的。在ILNumerics中鼠标事件处理的完整文档可以在这里找到:http://ilnumerics.net/mouse-events.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19495826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档