2012-01-28 196 views
8

我有一个应用程序,我使用XAML来表示自己的自定义对象图。它与WPF/Silverlight对象模型完全不同(并且不用于UI设计),但可以用有意义的方式可视化对象图。我想要做的是在Visual Studio中添加一个设计器扩展来可视化我的特定对象,但是我一直无法找到关于此主题的信息。有人能指出我的方向吗?Visual Studio自定义XAML设计器

我的主要目标是对当前的XAML有一些简单的视觉反馈;我还没有到需要设计师支持可视化编辑的地步。如果有人好奇,它是模拟工业机器的工具;我使用XAML来定义机器的组件和它们的连接,但是我现在必须运行完整的模拟来查看机器的外观。

回答

11

您需要创建一个解析文件并可视化内容的Visual Studio扩展(vsix)。您有两个选项:Visual Studio 加载项或Visual Studio程序包(请参阅问题1139294中的差异的详细信息)。第一个稍微容易一点,但后者会给你更多的控制权,所以如果你将来有编辑的话,我建议你使用 。

首先下载用于创建Visual Studio扩展的SDK,即Visual Studio 2010 SP1 SDK。对于较旧的非SP1版本,请点击here

您需要熟悉创建Visual Studio包。 有关Microsoft教程,请参阅Walkthrough: Creating a VSPackage。 如果您按照教程进行操作,您应该拥有 通过菜单命令触发自定义组件所需的一切。所以现在你真正需要的是一个例如 一个正常的WPF组件,可以解析/可视化您的自定义XAML。 您也可能需要将您的自定义文件类型与您的组件关联。为此,您需要一个ProvideEditorExtensionAttribute

没有什么比样,因此请参阅samples libraryThe IDE Sample Editor。这创建了一个小文件编辑器自定义文件类型,这与您所问的内容很接近。用你的编辑器替换文件编辑器组件和相关的文件类型,你就快完成了!

+4

+1“你快完成了!” – RQDQ 2012-01-31 18:14:42

+0

谢谢,这确实有助于我指出正确的方向。我的情况稍有不同(因为我没有自定义文件格式;它仍然是一个* .xaml扩展名,并且仍然编译为一个类,带有支持代码文件,就像任何其他xaml类一样)。但是,这仍然是相当有用。 – 2012-02-04 14:36:32

+0

是的,有趣的是 - 在Silverlight项目中,VS知道要以.xaml的方式呈现,并且在WPF项目中,VS知道以另一种方式呈现它 - 也许还有一些项目模板魔法可以指定“对于项目类型-x使用*这个*设计者为xaml”等等...... – BrainSlugs83 2014-06-30 18:36:23

相关问题