在 Visual Studio 2010 中使用自定义 UI 编辑器注册自定义文件类型

2024-06-18

我发现旧文章叫做立即学习VSX和一部分#30 - Visual Studio 中的自定义编辑器 http://dotneteers.net/blogs/divedeeper/archive/2008/09/01/LearnVSXNowPart30.aspx。有示例项目博客项目编辑器其中显示了如何使用自定义 UI 编辑器为此文件类型扩展名 (.blit) 分配自定义文件类型 该示例使用项目VSXtra http://vsxtra.codeplex.com/,这是为视觉工作室2008.

有人可以给我指点一些教程、操作方法,或者如何做同样的事情吗?视觉工作室2010?我的目标是在 Visual Studio 2010 中注册自定义文件类型扩展名(例如 *.myext1),并指定我自己的自定义 UI 设计器(WinForms,源自 UserControl)来直观地处理此类文件的内容编辑。

我找到了一些示例,但每个示例仅显示代码文本编辑器上的更改(突出显示某些单词等)。但我想显示我自己的工具窗口,其中包含我的用户控件。

PS:使用我自己的用户控件创建自定义工具窗口的一部分不是问题,我使用VSPackage Builder 项目模板 http://code.msdn.microsoft.com/vspackagebuilder在 visx 中构建并注册它。我的问题是如何注册自定义文件类型以使用此自定义工具窗口来编辑文件。


虽然 Visual Studio 2010 中的核心文本编辑器发生了显着变化(几乎完全重写,围绕 MEF 设计),但用于注册和提供自定义编辑器/设计器的一般基础结构并未发生变化。

The “创建自定义文本编辑器和设计器” http://msdn.microsoft.com/en-us/library/bb166329.aspxMSDN 页面是一个很好的起点。您还应该能够通过 VSPackage 向导并选择“自定义编辑器”来获得基本编辑器。它将为您提供一个简单的 RTF 编辑器。

您还可以在 MSDN 代码库上查看这些示例,以获得更多想法和灵感:

  • 具有工具箱支持的编辑器 http://code.msdn.microsoft.com/EditorwithToolbox/
  • XML 编辑器上的设计器视图 http://code.msdn.microsoft.com/xmlwpfdesigner

通常建议编辑器驻留在文档窗口中(而不是工具窗口)。这是 Visual Studio 中几乎所有内置编辑器/设计器使用的范例,也是用户从解决方案资源管理器打开某些内容时所期望的。在工具窗口中编辑内容可能会感觉有点不自然。

我的理解是,VSXtra 提供了一些额外的帮助器/基类(超出了 Microsoft 支持的范围),以使各种任务(例如编写自定义编辑器/设计器)变得更简单。不过,绝不需要创建自定义编辑器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Visual Studio 2010 中使用自定义 UI 编辑器注册自定义文件类型 的相关文章

随机推荐

  • 数据帧初始化 - 字符初始化读取为因素?

    我正在尝试初始化这样的数据框 因为我想要一个空数据框 其中两个字符向量作为列 out frame lt data frame Hospital character State character 但是 当我查看该数据框的每一列的类时 它显示
  • 使用多处理池更新 Django 模型会锁定数据库

    我使用 Jupyter Notebook 来处理我存储在 django postgres 中的数据 我这样初始化我的项目 sys path append srv gr prg os environ setdefault DJANGO SET
  • 从 .NET 设置系统时区

    有没有人有一些代码可以从 NET 获取 TimeZoneInfo 字段并执行互操作代码以通过 SetTimeZoneInformation 设置系统时区 我意识到它基本上是将 TimeZoneInfo 成员映射到结构成员 但对我来说 这些字
  • Swift:二元运算符“==”不能应用于“协议”类型的操作数

    我有一个协议 protocol ProfileManagerDelegete func dataHaveUpdated type ReturnType 并创建一个协议数组 并添加 删除侦听器 var listeners ProfileMan
  • 在 Jquery - jTable 创建/更新模式中的字段末尾添加自定义按钮,如提交按钮

    在 jquery jTable 中 我们可以有一些字段和操作 我需要 Jquery JTable 按钮 提交 按钮 附近的其他按钮 可能在页面末尾 单击后运行另一个函数 所以 这是我的代码 RequestSubmitDiv jtable t
  • 这是演员还是建筑?

    读完教科书上的一些内容后 我有点困惑 关于代码 void doSomeWork const Widget w Fun stuff doSomeWork Widget 15 doSomeWork 需要一个const Widget 范围 教科书
  • 如何将slug添加到asp.net core网站中的所有链接生成中?

    我需要能够控制我的生成的链接Url Content 调用以能够在链接的开头接受 Slug 基本上 托管 URL 将位于负载平衡器后面 并且可能位于根级别或位于更友好的 Url 后面 举个例子 该站点配置为在以下环境下运行http 本地主机
  • 显示标准化数据

    跟进问题 添加 2 个不同表的总和 https stackoverflow com questions 39717541 adding sum from 2 different tables 我创建了3个表 members videos v
  • 如何外部化 json-ld 并包含在 html 文档中

    是否可以外部化 json ld 并将其包含在 html 文档中 如下所示 网上好像没有这方面的文档 你不能那样做 你应该得到json与AJAX要求 你可以轻松做到jQuery JS function getJSON data123 json
  • 使用函数和中点在 C++ 中对 Gusser 进行编号

    我正在尝试使用函数编写数字猜测器的代码 playOneGame 函数的返回类型应为 void 它应该在 1 到 100 的范围内实现一个完整的猜谜游戏 shouldPlayAgain 函数应具有布尔返回类型 它应该提示用户确定是否要再次玩
  • 在 Jenkins Pipeline 的一个步骤中添加多个阶段

    我正在尝试获得一个并行运行 2 个步骤的管道 其中 YAML 如下所示 steps step Step1 stages stage Build steps build a build b build c stage Sniff steps
  • 设置img src而不发出请求

    作为构建复制和粘贴代码的一部分 我们必须使用 dom 元素 并将文本 其他 dom 元素附加到其中 最终结果将是要复制的代码 但是 当附加图像元素时 浏览器always发出对图像 src 的请求 有什么办法解决吗 i e var img d
  • 如何在没有接口的情况下模拟多重继承?

    如何在不使用接口的情况下在 C 中模拟多重继承 我确实相信 接口能力不适用于此任务 我正在寻找更多面向 设计模式 的方式 就像 Marcus 所说 使用接口 扩展方法来制作像 mixins 这样的东西可能是你目前最好的选择 另请参阅 使用接
  • 在 bash 脚本中使用源时出现“源:未找到”错误

    我正在尝试编写 我认为的 一个简单的 bash 脚本 它将 运行 virtualenv 以 1 美元创建一个新环境 激活虚拟环境 做更多的事情 安装 django 将 django admin py 添加到 virtualenv 的路径等
  • Elastic Search 6 嵌套查询聚合

    我是弹性搜索查询和聚合的新手 我有一个带有以下映射的嵌套文档 PUT company mappings data properties deptId type keyword deptName type keyword employee t
  • 如何更改ggplot2中x轴和y轴的位置

    在我的真实研究世界中 在顶部 或顶部和底部 显示 x 轴 在右侧显示 y 轴是很常见的 然而 ggplot2 中的默认位置是 x 位于底部 y 位于左侧 下列的科斯克在这里发帖 https groups google com forum f
  • 为除 admin 之外的所有用户禁用管理栏

    我已经安装了 WordPress 和 BudyPress 我想禁用所有用户顶部显示的管理栏 有人可以告诉我如何正确地做到这一点吗 function is current user administrator global current u
  • Xamarin Android:检测设备当前是否正在播放音频

    在应用程序启动时 是否可以检测设备的音频播放器或其他应用程序当前是否正在播放音乐 您可以使用AudioManager http developer android com reference android media AudioManag
  • 根据值匹配数组

    我使用以下代码来解析 yaml 并应得到输出为runners对象和函数build应更改数据结构并根据以下结构提供输出 type Exec struct NameVal string Executer string 这是我尝试过的 但我不知道
  • 在 Visual Studio 2010 中使用自定义 UI 编辑器注册自定义文件类型

    我发现旧文章叫做立即学习VSX和一部分 30 Visual Studio 中的自定义编辑器 http dotneteers net blogs divedeeper archive 2008 09 01 LearnVSXNowPart30