找不到类型或命名空间“OpenGLEventArgs”

时间:2018-05-14 15:42:52

标签: c#

我是3D图形的新手,所以我按照我们大学的网站上的说明如何使用3D图形,但我不明白为什么我有这个错误,如果有可能有人可以向我解释如何解决这个问题?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApp2
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
   public partial class MainWindow : Window
   {
        public MainWindow()
        {
           InitializeComponent();
        }
        private void OpenGLControl_OpenGLInitialized(object sender, OpenGLEventArgs args)
        {
            var gl = args.OpenGL;
            gl.ClearColor(0.3f, 0.3f, 0.3f, 0.3f);
        }
        private void OpenGLControl_OpenGLDraw(object sender, OpenGLEventArgs args)
        {
            var gl = args.OpenGL;
            gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);
            gl.Begin(OpenGL.GL_TRIANGLES);
            gl.Color(0f, 1f, 0f);
            gl.Vertex(-1f, -1f);
            gl.Vertex(0f, 1f);
            gl.Vertex(1f, -1f);
            gl.End();
        }
        private void OpenGLControl_Resized(object sender, OpenGLEventArgs args)
        {

        }
    }
}

3 个答案:

答案 0 :(得分:0)

您缺少两个可以使用SharpGL库的密钥导入。只需添加以下行:

using SharpGL;
using SharpGL.SceneGraph;

答案 1 :(得分:0)

万一有人偶然发现:

这里的问题是SharpGL有不同的版本。从名称空间来看,我假设OP要使用WPF版本。

我们需要添加:

using SharpGL;
using SharpGL.WPF;

事件args参数也略有不同:

private void OpenGLControl_OpenGLInitialized(object sender, OpenGLRoutedEventArgs args)
...
private void OpenGLControl_OpenGLDraw(object sender, OpenGLRoutedEventArgs args)

即使用 OpenGLRoutedEventArgs 而不是 OpenGLEventArgs

答案 2 :(得分:-1)

  1. 您需要转到解决方案文件,右键单击并选择“管理nuget软件包”。

  2. 安装以下软件包

    • sharpgl,戴夫·克尔

    • sharpgl.wpf

    • sharpgl.winforms

  3. 在mainwindow.xaml.cs或[entrypoint]的顶部添加以下两行

    • 使用SharpGL;
    • 使用SharpGL.SceneGraph;

瞧!