【问题标题】:ILNumerics and Visual Studio Tools for Office (VSTO)适用于 Office 的 ILNumerics 和 Visual Studio 工具 (VSTO)
【发布时间】:2013-07-26 03:27:15
【问题描述】:

我一直在 Windows 7 上的 Visual Studio 2010 pro 中使用 .Net 4.0 试用 ILNumerics 3.2.1.0 的社区版本,并通过文档我成功获得了一个 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() 方法。正如在各个地方指出的那样,包括这个问题,Detecting design mode from a Control's constructor,以下方法并不理想,但对我来说,它提供了一个快速修复,让我可以评估 ILNumerics。

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

【问题讨论】:

  • 你是这样让它在 VSTO 中运行的吗?只是好奇它的表现如何?
  • 是的,控件在 VSTO 中正确显示,虽然速度很慢。不知道这是控件还是它在 VSTO 中运行的事实。我才刚刚开始评估 ILNumerics,还处于早期阶段。
  • 它可能切换到 GDI 渲染。我也无法在我的机器上运行 OpenGL。它是一台笔记本电脑,仅使用板载英特尔软件仿真器。不过可能与 ILNumerics 无关。谢谢!

标签: c# vsto ilnumerics


【解决方案1】:

这与这里的问题相同:

Ilnumerics Ilpanel not activating when compiled in a winform into a dll when loaded into matlab in-a-winform-into-a-dll-when-loa

使用 VSTO 作为 ILNumerics 的主机让面板假设它是在设计器中加载的。我们目前正在收集可能的解决方法和解决方案。一种解决方案可能是在 ILNumerics 的设置中引入一个标志:

Hosted [default: false]

您的情况需要启用该标志。在托管模式下,可以在运行时检查常见设计者的黑名单,并将其与当前条目程序集进行比较。还有其他建议吗?

【讨论】:

  • 是的,我有一个打开的错误报告,问题在于 ILNumerics.Drawing.ILHelper.IsDesignMode 方法希望很快得到修复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
  • 2015-10-19
相关资源
最近更新 更多