use*_*636 7 c# wpf xaml visual-studio-2010 visual-studio-2012
我做了一个自定义的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文件?
我认为 VSSDK 中没有标准的方法来做到这一点。设计器主要针对特定的文件扩展名,并且将在任何项目类型中针对该文件扩展名调用。
我会尝试看看是否有一种方法可以在检查当前加载的项目类型后重定向或拒绝创建/实例化该编辑器的请求,或者找到适合您的文件类型的下一个编辑器并创建一个实例并返回它。
不幸的是,我无法提供技术细节或代码,因为自从我上次接触任何 VSSDK 代码以来已经有很多年了。
| 归档时间: | 
 | 
| 查看次数: | 553 次 | 
| 最近记录: |