代码之家  ›  专栏  ›  技术社区  ›  Charlie

创建自定义设计时环境

  •  9
  • Charlie  · 技术社区  · 14 年前

    我的问题与wpf的设计时支持有关。从 MSDN 我读书,

    wpf设计器提供了一个框架 以及一个公共api,您可以使用它 实现自定义装饰器、工具, 属性编辑器和设计器。

    但是,我发现的绝大多数示例都是微不足道的,并没有说明在现有wpf应用程序中创建自定义设计器的问题。过去一年,我们已经将应用程序从windows窗体迁移到wpf,下一步将采用现有的winforms面板设计器,并在wpf中重写它。

    可以说这将是一个巨大的工程。但我都不知道从哪里开始。我想知道你们中是否有人有过为wpf应用程序编写自定义设计器的类似经验,以及它是什么样子的。更好的是,如果您可以比较和对比winforms设计器和wpf设计器之间的功能,或者解释从前者到后者的转换,这将是有帮助的。如果你知道任何简单的例子来演示一个定制的设计环境(包括定制控件等),那将是非常有益的。

    总之,我只是想知道,是否有很多人已经采取了这一点,他们的结果是什么。

    编辑 :为了澄清,是的,我说的是主持一个wpf设计师。看来这甚至不可能,这是一个巨大的挫折。这是我们当前的winforms设计器的屏幕截图。如您所见,它用于创建自定义用户界面。您可以将自定义控件拖到面板上并进行设计,然后将面板置于“运行模式”中,在该模式下所有控件都可以正常工作。

    如果不花几个月的时间来写我们的设计师,这在wpf中有可能吗?.net 4.0和vs2010怎么样?这些会添加任何设计器功能吗?

    alt text http://img94.imageshack.us/img94/5378/oldpaneldesigner.png

    1 回复  |  直到 14 年前
        1
  •  2
  •   Nick    14 年前

    不幸的是,可能没有一个好的答案取决于你到底想做什么。你的问题有点模糊不清,你到底想做什么。您只是试图在visual studio中扩展现有的设计器,还是试图在您自己的单独应用程序中托管wpf设计器?

    如果是后者,你可能很不幸无法做到这一点。winforms设计器实际上是.net framework(而不是visual studio)的一部分,因此任何提供正确宿主环境的应用程序都可以访问它。有 a good article on MSDN on how to do that here another one on from DivElements here .

    许多人在其他论坛上询问是否可以使用cider(wpf设计器的代码名),以及 it seems like the answer is no . 您唯一可能的选择是重新设计应用程序以利用 Visual Studio Isolated Shell . 有一个 good overview of the options here .

    编辑: 看起来SharpDevelop可能有一个可以使用的WPF设计器。我不能百分之百确定他们是否开发了自己的,或者他们是否找到了一种方法来托管它,但是你可以看看它们的来源,然后自己决定。去 Daily Builds of Sharp Develop (这是 在官方版本中)并获取最新的每日版本。在那个zip文件中,查看samples/xamldesigner目录。