ILNumerics и инструменты Visual Studio для Office (VSTO)

Я экспериментировал с версией сообщества ILNumerics 3.2.1.0 с .Net 4.0 в Visual Studio 2010 pro в Windows 7, и, просматривая документацию, я успешно получил проект формы Windows для отображения диаграммы, используя приведенный ниже код.

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void ilPanel1_Load(object sender, EventArgs e)
    {
        ILSurface mySurface = new ILSurface(ILSpecialData.sincf(100, 200));
        ILPlotCube myCube = new ILPlotCube(twoDMode: false);
        myCube.Add(mySurface);
        ilPanel1.Scene.Add(myCube);
    }
}

Если я попробую точно такой же код, но из приложения VSTO Excel 2010, все, что будет отображаться в форме, - это вид конструктора ILPanel, синий кружок на белом фоне. Я не получаю сообщений об ошибках. Я упускаю что-то очевидное? или у кого-нибудь есть решение, как заставить график отображать в VSTO?

Обновлять

Спасибо Philliproso за указание на метод IsDesignMode (). Как указано в разных местах, включая этот вопрос, Определение режима проектирования из конструктора элемента управления, следующий метод не идеален, но для меня он предоставил быстрое решение, позволяющее мне оценить ILNumerics.

 public static bool IsDesignMode() {
        if (System.Windows.Forms.Application.ExecutablePath.IndexOf("devenv.exe", StringComparison.OrdinalIgnoreCase) > -1)
        {
            return true;
        }
        return false;
}

person Sharp Statistics    schedule 24.07.2013    source источник
comment
Вы так запустили в VSTO? Просто любопытно, как это работает?   -  person user492238    schedule 26.07.2013
comment
Да, в VSTO элемент управления отображался корректно, хотя работал довольно медленно. Не знаю, является ли это элементом управления или тот факт, что он работает в VSTO. Я только начал оценивать ILNumerics, так рано.   -  person Sharp Statistics    schedule 27.07.2013
comment
Вероятно, он перешел на рендеринг GDI. Мне тоже не удалось запустить OpenGL на моем компьютере. Это ноутбук, в котором используется только встроенный программный эмулятор Intel. Однако может не иметь отношения к ILNumerics. Спасибо!   -  person user492238    schedule 28.07.2013


Ответы (1)


Это та же проблема, что и здесь:

Ilnumerics Ilpanel не активируется при компиляции в winform в dll при загрузке в Matlab > в-winform-в-DLL-когда-loa

Использование VSTO в качестве хоста для ILNumerics позволяет панелям предполагать, что он был загружен в конструктор. В настоящее время мы собираем возможные обходные пути и решения. Одним из решений может быть введение флага в настройках ILNumerics:

Hosted [default: false]

В вашей ситуации необходимо, чтобы флаг был включен. В размещенном режиме черный список общих дизайнеров может быть проверен во время выполнения и сравнен с текущей входной сборкой. Есть другие предложения?

person Haymo Kutschbach    schedule 24.07.2013
comment
Да, у меня есть открытый отчет об ошибке, проблема заключается в методе ILNumerics.Drawing.ILHelper.IsDesignMode, надеюсь, скоро исправят - person Philliproso; 25.07.2013