定制小部件设计时间支持?

时间:2015-06-22 23:01:07

标签: c# mono monodevelop gtk#

MonoDevelop(Stetic)的GUI设计器为小部件提供设计时支持,例如Notebook小部件,其中包含插入页面之前插入页面之后的选项。它还允许我将子窗口小部件放到这些单独的页面上。

这是直接在Gtk#中实现的吗?我在哪里可以检查代码?如何为我自己的自定义小部件实现此功能?我想创建一个类似笔记本的导航控件(类似于MS Outlook 2007/2010/2013),可以使用Stetic拖放设计。

我已尝试搜索MonoDevelop and Gtk#的来源。在我看来,这可能与其他类和属性类似的方式实现,如Visual Studio Attributes and Design-Time Support,但我找不到任何证据。

2 个答案:

答案 0 :(得分:0)

在MonoDevelop中,Stetic被定义为AddIns中的成员。从技术上讲,它始终可用/已安装,因此您无法通过“添加管理器”处理此事。

所以你在寻找:

MonoDevelop.GtkCore.dll
libstetic.dll
libsteticui.dll

在monodevelop构建过程中,假设你有monodevelop代码本地,那么这些代码将被构建并放入:

monodevelop/main/build/AddIns/MonoDevelop.GtkCore

您正在寻找的源代码位于:

monodevelop/main/src/addins/*

我强烈建议您启动:

  • git clone monodevelop source repo
  • cd进入repo
  • ./ configure --help(找出你需要使用的选项)
  • 一旦你可以构建monodevelop,你可以使用该构建版本或(Xamarin Starter +)打开工作区MonoDevelop.mdw(在repo的根目录中)
  • 导航至:
  • Main / Addins / MonoDevelop.GtkCore / libstetic
  • Main / Addins / MonoDevelop.GtkCore / libsteticui

有趣地冲进城堡; - )

答案 1 :(得分:0)

MonoDevelop中的Stetic设计师根本不支持“可插拔”小部件设计或命令的概念。它只是按照它支持的控件的方式编写,其他任何东西都必须通过自定义窗口小部件窗口小部件添加,并通过代码进行操作。