如何在OpenTK中创建可单击按钮?

时间:2017-07-29 18:25:49

标签: c# button opentk

我正在尝试在OpenTK中为按钮创建一个类。

有一个很好的方法来制作按钮吗?

如果在悬停在其上方时可以显示说明,则会更感激。

1 个答案:

答案 0 :(得分:0)

您有两种选择。

  1. 使用GLControl在Windows窗体中嵌入OpenTK上下文。这里的缺点是OpenTK窗口中没有按钮,但根据你的目标,这可能不是问题。

  2. 自行渲染一个按钮,测试该区域内的鼠标按压。

  3. 选项2将更多的工作,但显然更多才多艺,如果你刚开始,你将学到很多东西。

    获取光标位置...

    int mouseX = System.Windows.Forms.Cursor.Position.X;
    int mouseY = System.Windows.Forms.Cursor.Position.Y;
    

    检查鼠标按下...

    MouseState mouseState = OpenTK.Input.Mouse.GetState();
    bool leftMouseDown = mouseState.IsButtonDown(MouseButton.Left);
    bool rightMouseDown = mouseState.IsButtonDown(MouseButton.Right);
    

    以每像素坐标绘制四边形......

    float x1 = (float)x * 2 / screenWidth - 1;
    float x2 = (float)(x + buttonWidth) * 2 / screenWidth - 1;
    float y1 = (float)y * 2 / screenHeight - 1;
    float y2 = (float)(y + buttonHeight) * 2 / screenHeight - 1;
    

    其余的由你我的朋友决定。