创建自定义设计时环境

时间:2010-03-02 20:06:44

标签: c# wpf windows-forms-designer

我的问题与WPF的设计时支持有关。从我MSDN开始,

  

WPF Designer提供了一个框架   以及您可以使用的公共API   实施自定义装饰,工具,   物业编辑和设计师。

但是我发现的绝大多数示例都是微不足道的,并没有说明在现有WPF应用程序中创建自定义设计器的情况。在过去的一年中,我们已将我们的应用程序从Windows Forms迁移到WPF,下一步将采用现有的WinForms Panel设计器,并在WPF中重写它。

我只想说这将是一个巨大的项目。但我甚至不知道从哪里开始。我想知道你们是否有过为WPF应用程序编写自定义设计器的类似经历,以及它是什么样的。更好的是,如果你可以比较和对比WinForms设计师和WPF设计师之间的功能,或解释从前者到后者的过渡,那将是有帮助的。如果您知道任何演示自定义设计环境(使用自定义控件等)的简单示例,那将非常有用。

总而言之,我只是想知道是否有很多人已经采取了这个措施,以及他们的成果是什么。

编辑:澄清一下,是的,我正在谈论托管WPF设计师。这似乎甚至不可能实现,这是一个巨大的挫折。这是我们当前的WinForms设计师的屏幕截图。如您所见,它用于创建自定义用户界面。您可以将自定义控件拖到其上并进行设计,然后将面板置于“运行模式”,其中所有控件都可以正常运行。

没有花几个月写我们的设计师,这可能在WPF吗?那么.NET 4.0和VS2010呢?那些会添加任何设计师功能吗?

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

1 个答案:

答案 0 :(得分:2)

不幸的是,根据你想要做什么,可能没有一个好的答案。你的问题对于你想要做的事情有点模糊。您是否只想在Visual Studio中扩展现有设计器,或者您是否尝试在自己的独立应用程序中托管WPF设计器?

如果是后者,遗憾的是你可能无法做到这一点。 WinForms设计器实际上是.NET Framework(不是Visual Studio)的一部分,因此任何提供正确托管环境的应用程序都可以访问它。有a good article on MSDN on how to do that hereanother 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目录。