0

我正在制作一个将在 VS 拖放设计器中使用的组件。此组件的属性之一需要是项目中文件的包 URI。

我想让事情变得简单一些,在 PropertyGrid 用于我的类型属性的属性编辑器中,检查解决方案,构建 Uris 并将它们呈现给用户以供选择。

这可能吗?而且,如果是这样,我能否获得一些关于如何解决此问题的指示和入门指南?

4

2 回答 2

1

我认为这有几个方面。

1) 您可以为属性创建自己的类型编辑器,以决定如何使用属性网格将属性值呈现给用户。

为此,您需要创建一个类型编辑器,从 UITypeEditor 继承,如下所示。

public class UriListUIEditor : UITypeEditor
{
       //Override a couple of methods
}

查看此 codeproject 文章以查看一个简单的示例。http://www.codeproject.com/KB/edit/flagenumeditor.aspx

现在,提供您的属性的 EditorType 属性,例如

   [Editor(typeof(Utils. UriListUIEditor ), 
             typeof(System.Drawing.Design.UITypeEditor))]
    public string Uri 
             { get;set;
             }

2) 要在您的项目中迭代解决方案,请获取当前的 DTE 实例

 var dte = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal. GetActiveObject("VisualStudio.DTE.8.0"); 

并遍历所有项目以构建列表或 URI 或任何东西。理想情况下,您可以在上述 UriListUIEditor 的 EditValue 方法中执行此操作。

  foreach (var project in dte.Solution.Projects)
        {

        }

希望这可以帮助

于 2009-07-04T06:10:33.353 回答
1

这是仅用于 WPF 项目的组件吗?那么你可能很幸运。这里写一篇。http://www.wiredprairie.us/journal/2007/06/pack_syntax_in_wpf.html。或者这个 MSDN 示例可以帮助http://msdn.microsoft.com/en-us/library/aa972152(VS.85).aspx

于 2009-07-01T10:55:23.883 回答