我将自定义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)]
我补充说:
//CustomProjectType
[EditorFactoryNotifyForProject("{GUID CustomProjectType}", EditorFactory.Extension, GuidList.guidXmlChooserEditorFactory)]
但它不起作用。这导致了此扩展的自定义设计器用于所有类型的项目。
如何让自定义设计器仅在自定义项目中打开* .XAML文件?
答案 0 :(得分:0)
我认为在VSSDK中没有标准的方法。设计器主要针对某个文件扩展名,并将在任何项目类型中为该文件扩展名调用。
在检查当前加载的项目类型后,我会尝试查看是否有方法重定向或拒绝创建/实例化该编辑器的请求,或者找到您的文件类型的下一行编辑器并创建它的一个实例,然后返回它。
不幸的是,自从我上次触及任何VSSDK代码以来,我无法提供技术细节或代码。