9

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

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

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

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

总而言之,我只是想知道是否有很多人已经这样做了,他们的结果是什么。

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

没有花几个月时间编写我们的设计器,这在 WPF 中是否可行?.NET 4.0 和 VS2010 怎么样?这些会添加任何设计器功能吗?

替代文字 http://img94.imageshack.us/img94/5378/oldpaneldesigner.png

4

1 回答 1

2

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

如果是后者,很遗憾您可能无法做到这一点。WinForms 设计器实际上是 .NET Framework(不是 Visual Studio)的一部分,因此任何提供正确宿主环境的应用程序都可以访问。MSDN 上有一篇关于如何在此处执行此操作的好文章,还有一篇来自 DivElements 的文章。

许多人在其他论坛上询问是否可以使用 Cider(WPF 设计器的代号)进行相同的操作,似乎答案是否定的。您唯一可能的选择是重新设计您的应用程序以使用Visual Studio 隔离外壳。这里有一个很好的选项概述

编辑:看起来 SharpDevelop 可能有一个您可以使用的 WPF 设计器。我不是 100% 确定他们是否开发了自己的,或者他们是否找到了托管它的方法,但您可以查看他们的来源并自己决定。转到Sharp Develop 的 Daily Builds(它还没有在正式版本中)并获取最新的每日版本。在该 zip 文件中,查看 Samples/XamlDesigner 目录。

于 2010-03-05T18:08:14.820 回答