В моем приложении я использую PropertyGrid для установки атрибутов, связанных с загрузкой данных, установкой сцены и т. Д. У меня небольшая проблема, хотя, когда дело доходит до использования Vector3 в качестве свойства , Оказывается, если я попытаюсь использовать структуру OpenTK Vector3 как поле PropertyGrid, она деактивирует это поле (оно отображается как серое и не может быть изменено). Я предполагаю, что это связано с тем, что структура является неизменной, поэтому ее нельзя редактировать. Я хочу знать, есть ли способ обойти это. Я знаю, что я мог бы определить свой собственный Vector3 как класс, который будет работать, но я хочу продолжить использование OpenTK Vector3..NET Использование Struct в PropertyGrid
Вот захват экрана моего приложения:
А вот PropertyGrid настройки класса:
using System.ComponentModel;
using OpenTK;
using StardustModeling.Modeling.IOFilters;
namespace StardustModeling.Modeling
{
public class ModelBuilderSceneSettings
{
[Description("The name of the compiled model."),
Category("Information")]
public string Name { get; set; } = "";
[Description("The geometry data for the model."),
Category("Data"),
Editor(
typeof(WavefrontModelFilter) ,
typeof(System.Drawing.Design.UITypeEditor))]
public string GeometryMesh { get; set; } = "";
[Description("The Diffuse Texture of the model."),
Category("Texturing"), Editor(
typeof(BitmapFilter) ,
typeof(System.Drawing.Design.UITypeEditor))]
public string Diffuse { get; set; } = "";
[Description("The NormalMap for the model."),
Category("Texturing"), Editor(
typeof(BitmapFilter) ,
typeof(System.Drawing.Design.UITypeEditor))]
public string Normals { get; set; } = "";
[Description("Position of the scene lamp."),
Category("Scene")]
public Vector3 Lamp { get; set; } = new Vector3(2,2,2);
[Description("Model Position."),
Category("Scene")]
public Vector3 ModelLocation { get; set; } = new Vector3(); // Default 0,0,0
}
}
Почему голосование закрывается? Это правильный вопрос. – Krythic
У вас есть доступ к определению 'Vector3'? Проверьте, есть ли у него 'TypeConverter', например, как [System.Drawing.Point] (http://referencesource.microsoft.com/#System.Drawing/commonui/System/Drawing/Point.cs,a041be61667d4c9a) –
@IvanStoev Это не так: https://github.com/opentk/opentk/blob/develop/Source/OpenTK/Math/Vector3.cs – Krythic