【问题标题】:Addin dockable in Enterprise Architect在 Enterprise Architect 中添加可停靠
【发布时间】:2022-10-12 21:28:32
【问题描述】:

我正在为 Enterprise Architect 开发 C# 插件,当用户选择一个菜单项时,将弹出一个 WPF GUI。

如何使这个 WPF GUI 停靠在 Enterprise Architect GUI 上(使用停靠)?我可以使加载项 GUI 可停靠吗?

【问题讨论】:

    标签: c# add-in enterprise-architect


    【解决方案1】:

    是的,您可以使用Repository.AddTab()Repository.AddWindow(),具体取决于您希望窗口显示在主图部分中,还是作为常规停靠窗口

    来自manual:

    AddTab(字符串 TabName,字符串 ControlID)

    activeX 自定义控件

    注意:将 ActiveX 自定义控件添加为选项卡式窗口。企业 Architect 创建一个控件,如果成功,则返回其 Unknown 指针,调用者可以使用它来操作控件。

    参数:

    TabName: String - 用作选项卡标题 ControlID: String - 控件的 ProgID;例如,“CS_AddinFramework.UserControl1”

    AddWindow(字符串 WindowName,字符串 ControlID)

    注意:将 ActiveX 自定义控件作为窗口添加到加载项 停靠的窗口。 Enterprise Architect 创建一个控件,如果 成功,返回它的未知指针,它可以被 调用者来操作控件。

    参数:

    WindowName: String - 用作窗口标题 ControlID: String - 控件的 ProgID;例如,“CS_AddinFramework.UserControl1”

    您可能需要将 WPF 窗口包装到 Winforms 控件中,以允许 EA 将其创建为 ActiveX 控件。

    这是我写的一个插件示例:EA Navigator

    【讨论】:

    • 现在我正在使用下面的代码,我想在 EA 的加载项选项卡中添加这个视图: if (_testWindowViewModel == null) _testWindowViewModel = new TestWindowViewModel(repository); _mainWindow = new TestView(_testWindowViewModel); _mainWindow.Show();
    • 首先,我将在 UserControl (XAML) 中转换 Window,此用户控件与 TestView(_testWindowViewModel) 后面的 viewModel 绑定。但仍然不能像上图那样将此用户控件添加到加载项选项卡。我还使用了您共享的项目,但缺少 EAAddinFramework 等项目
    • 您必须确保在 COM 中注册您的控件。所有其他必需的存储库都可以在同一个 github 中找到。
    • 是的,我在 COM 中注册了控件,并且插件在 EA 中,但对于 Window 和 Tab 仍然不起作用。我附上了一个带有 3 个选项的代码示例:弹出窗口(工作)、应该在 Addin 选项卡中的窗口(不工作)和选项卡窗口(不工作)。我正在使用带有 MVVM 的 WPF。吉特:github.com/IcePeak89/EA_Addin.git
    • EA 需要一个在 COM 中注册的 ActiveX 控件。我认为您需要将 WPF 包装到 winforms 控件中才能使其正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多