首页 > 解决方案 > 如何将琐碎的 OpenGL 功能添加到 Xamarin 表单应用程序

问题描述

任何人都可以帮忙解决以下问题吗?

我有一个简单的 Xamarin 表单应用程序正在运行,我想添加一个 OpenTK 视图。

以下工作正常:

在我的 MainPage.xaml.cs 中,我有一个按钮的以下事件处理程序,每次单击都会生成一个空的 OpenTK 视图:

private void OnXAMLButtonClicked(object sender, EventArgs e)
        {
            var view = new OpenGLView { HasRenderLoop = true };

            view.HeightRequest = 300;
            view.WidthRequest = 300;

            view.OnDisplay = r =>
            {
                //GL.ClearColor(red, green, blue, 1.0f);
            };

            m_SL.Children.Add(view);
        }

(其中 m_SL 是我的 StackLayout 的名称)。

每次点击我都会得到一个新的黑色窗口。伟大的。

现在,看到注释掉的那一行,那是因为值 GL 是未定义的。

此代码来自此处的简单示例:

https://docs.microsoft.com/en-us/dotnet/api/xamarin.forms.openglview?view=xamarin-forms

我在该示例的顶部看到以下内容:

使用 OpenTK.Graphics.ES30;

但我不能包括这个,OpenTK 不被识别为命名空间。我希望必须将其添加为参考,但是如何添加呢?

我可以在我的 .Android 项目中添加对它的引用,以便我可以在 MainActivity.cs 页面中添加上面的 using 语句,但这不是它所属的位置(尽管我看到我随后定义了 GL,所以这证明我需要将这些 using 语句添加到我的 MainPage.xaml.cs 中才能定义 GL),但就像我说的,如何为包含 MainPage.xaml.cs 的项目添加对 OpenTK 的引用。

谢谢你的帮助,米奇。

- - - 编辑 - - -

感谢发帖者到目前为止对我的帮助,新问题是对 System.Private.Core 的引用,无法解决。这是我创建此错误的完整工作流程:

1:新建一个项目。

在此处输入图像描述

在此处输入图像描述

这给了我三个项目:

在此处输入图像描述

2:在 OGLMobile 项目中更改为 .NET 标准 2.1:

在此处输入图像描述

.Android 和 .iOS 项目没有 .NET 选择选项。

3:在OGLMobile项目中添加对OpenTK的引用:

在此处输入图像描述

4:OGLMobile 项目构建良好,但 .Android 项目提供:

在此处输入图像描述

如果我删除对 OpenTK 的引用,一切都会重新构建。如果我将 OpenTK Nuget 包添加到 .Android 项目中没有区别,我仍然会遇到相同的错误。

这么近,谢谢你的建议。

标签: xamarinopentk

解决方案


您需要安装 Nuget Package OpenTK.Graphics,然后才能使用它。

在此处输入图像描述

现在可以参考一下:

在此处输入图像描述

注意:4.0.1OpenTK.Graphics需要.NET Standard 2.1

在此处输入图像描述


推荐阅读