自定义XAML设计器在自定义项目类型的Visual Studio中

7
我做了一个自定义的XAML设计器,可以在http://code.msdn.microsoft.com/windowsdesktop/Designer-View-Over-XML-20a81f17上找到代码。我有一个问题:如何让自定义设计器仅在某些类型的项目(例如自定义类型的项目)中工作,并使其它项目使用默认的设计器。

在文件VsTemplateDesignerPackage.cs中有以下内容:

// Microsoft Visual Basic Project
[EditorFactoryNotifyForProject("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}", EditorFactory.Extension, GuidList.guidXmlChooserEditorFactory)]
// Microsoft Visual C# Project
[EditorFactoryNotifyForProject("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}", EditorFactory.Extension, GuidList.guidXmlChooserEditorFactory)]

I add:

//CustomProjectType
[EditorFactoryNotifyForProject("{GUID CustomProjectType}", EditorFactory.Extension, GuidList.guidXmlChooserEditorFactory)]

但它并没有起作用。这导致该扩展的自定义设计师在所有类型的项目中都被使用。

我该如何使自定义设计师仅在自定义项目中打开*.XAML文件?


你找到一个适合你的解决方案了吗?因为我现在也处于同样的困境,没有解决方案。 - Gilad
1个回答

0

我认为在VSSDK中没有标准的方法来做到这一点。设计师主要针对特定的文件扩展名,并将在任何项目类型中为该文件扩展名调用。

我会尝试查看是否有一种方式来重定向或拒绝创建/实例化该编辑器的请求,经过检查当前加载的项目类型,或者找出您的文件类型的下一个编辑器并创建其实例并返回它。

不幸的是,我无法提供技术细节或代码,因为我已经多年没有接触任何VSSDK代码了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接