我是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)
{
}
}
}
答案 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)
您需要转到解决方案文件,右键单击并选择“管理nuget软件包”。
安装以下软件包
sharpgl,戴夫·克尔
sharpgl.wpf
sharpgl.winforms
在mainwindow.xaml.cs或[entrypoint]的顶部添加以下两行
瞧!