我可以创建使用 WPF 显示的 Visual Studio 2010 外接程序吗?

2024-04-08

我们正在致力于为我们的企业应用程序创建专门的图形编辑器。我们研究并拒绝了 DSL。理想情况下,我希望编辑器的主界面像代码窗口一样停靠,并使用 WPF 进行绘图。谁能给我指出一些文档,让我走上正确的道路?

Thanks.

Colin.

更新:它开始看起来像“不”。从http://msdn.microsoft.com/en-us/library/bb166228.aspx http://msdn.microsoft.com/en-us/library/bb166228.aspx:“文档窗口是通过实现编辑器创建的。IVsEditorFactory 接口创建文档窗口作为实例化编辑器的一部分。有关更多信息,请参阅使用旧接口访问编辑器。”

跟随链接到http://msdn.microsoft.com/en-us/library/dd885127.aspx http://msdn.microsoft.com/en-us/library/dd885127.aspx给出了这样的建议:“您可以从旧版界面访问 Visual Studio 编辑器。Visual Studio SDK 包括称为垫片的适配器,使这些界面能够与新编辑器交互。不过,我们建议您更新旧版代码使用新的编辑器 API。您的代码将执行得更好,并且您可以使用新技术,例如 Windows Presentation Foundation (WPF) 和托管扩展性框架 (MEF)。”

所以,总结一下:如果你想实现一个编辑器,你必须使用遗留接口,但你不应该使用遗留接口,因为那样你就不能使用 WPF 或 MEF。

说真的,微软,WTF?

更新 2:现在我有了正确的名称(“自定义编辑器”),我能够找到以下主题:http://social.msdn.microsoft.com/Forums/en-US/vsxprerelease/thread/9e605d0f-1296-47c9-a534-e54905251ebe http://social.msdn.microsoft.com/Forums/en-US/vsxprerelease/thread/9e605d0f-1296-47c9-a534-e54905251ebe

我仍然不明白为什么他们不能将其包含在 MSDN 文档中的显着位置。您知道,就像在附近的某个地方,他们告诉您,如果您使用旧版界面,则无法使用 WPF。


创建自定义编辑器并不一定非常痛苦。是的,自定义编辑器需要实现一些接口,但您仍然可以使用 WPF 来实际创建 VS 文档框架中托管的控件。

DiveDeeper 的博客提供了一些很棒的资源,可用于学习如何创建自定义编辑器。

  • 创建简单的自定义编辑器 - 基础知识 http://dotneteers.net/blogs/divedeeper/archive/2008/03/12/LearnVSXNowPart15.aspx
  • 创建一个简单的自定义编辑器 - 前 10 米 http://dotneteers.net/blogs/divedeeper/archive/2008/03/14/LearnVSXNowPart16.aspx
  • 创建一个简单的自定义编辑器 - 在压力下 http://dotneteers.net/blogs/divedeeper/archive/2008/03/17/LearnVSXNowPart17.aspx

我建议使用像这样的库VSXtra http://dotneteers.net/blogs/divedeeper/archive/2008/03/17/LearnVSXNowPart17.aspx为您做很多工作。它将为您提供编辑器工厂、编辑器窗格、包等的良好基本实现。Istvan Novak 在这篇博文 http://dotneteers.net/blogs/divedeeper/archive/2008/09/01/LearnVSXNowPart30.aspx.

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

我可以创建使用 WPF 显示的 Visual Studio 2010 外接程序吗? 的相关文章

随机推荐

  • 操作员 '??'不能应用于子类类型的操作数

    以下代码给出了 Main 函数第二行标题中的错误 public class P public class B P public class A P void Main P p GetA GetB public A GetA return n
  • iOS 11 AVPlayer 在 KVO 时崩溃

    我在使用时遇到了奇怪的崩溃AVPlayer播放远程视频 从崩溃登录Fabric 应用程序在系统线程上崩溃 com apple avfoundation playerlayer configuration 崩溃日志如下 Crashed com
  • perl:一个父母,许多孩子 - 父母中的单管道阅读器?

    在perl中是否可以以这样一种方式建立一个管道 即父管道只有一个READER管道 并且许多子管道在它们启动 退出时写入它 典型的食谱代码是 usr bin perl w pipe2 use pipe and fork so child ca
  • 检索 iOS 中所有联系人的电话号码

    到目前为止 我看到了如果我显示一个选择器 则可以获取多个电话号码的方法 以便用户可以选择人员 然后获取电话号码 我想要的是检索所有联系人的号码 有可能吗 试试这个它适用于iOS 6 以及 iOS 5 0 或更早版本 示例项目演示 https
  • 如何在Vim终端模式下复制粘贴?

    我经常想从 terminal窗口到普通文本缓冲区 此刻我exitshell 会话并从历史记录中复制 一定有更好的方法 Copy To copy from a terminal window press CTRL W N This is a
  • 提交表单时Spring绑定异常

    卡住了 不知道为什么 Spring Form 在 get 中预填充时无法成功提交 给出绑定问题 Request call loadForm 但在方法中填充时工作正常setupFormObject with ModelAttribute注释标
  • wkhtmltopdf 和基于表单的身份验证

    我有一个使用基于表单的身份验证的应用程序 我正在尝试获取应用程序中页面的副本并使用 wkhtmltopdf 将其保存为 PDF wkhtmltopdf 已安装并且工作正常 我可以从应用程序内成功调用它来生成另一个网站的 PDF 无需身份验证
  • Rails has_many 自引用

    我的帐户模型如下 简化 class Account lt ActiveRecord Base attr accessible account number display name master account id has many ch
  • 如何在python中更改iBus输入法?

    我正在编写一个 Vim 插件来设置 iBus 引擎和输入法 到目前为止 我可以使用以下代码更改引擎 function im setEngine name python lt lt EOF try import ibus vim bus ib
  • .Net 3.5 日志记录

    我是一个相当新的 C 程序员 我想知道是否有人可以向我提供有关如何在现有解决方案中使用日志框架的更多信息 如果您这么称呼它 我正在尝试记录我正在做的项目 我想知道有哪些好的和简单的框架以及它们应该如何实现 我应该研究一个特定的主题吗 我还没
  • MongoDB 架构设计 - 实时聊天

    我正在启动一个项目 我认为该项目特别适合 MongoDB 因为它提供的速度和可扩展性 我目前感兴趣的模块是与实时聊天有关的 如果我要在传统的 RDBMS 中执行此操作 我会将其分为 频道 一个频道有很多用户 用户 一个用户有一个频道但有多条
  • 如何阻止 Maven 尝试访问 http://repo.maven.apache.org?

    开发机无法上网 大约60秒超时 当我尝试构建时 我看到 Downloading http repo maven apache org maven2 com google gsa connector 2 8 0 gsa connector 2
  • Cloud Functions Firebase v1.0 不会初始化

    随着 Firebase 云功能的最新更新 我在初始化应用程序以及数据库引用时遇到错误 第一个错误 以下应该基于 Firebase 函数 v1 0 文档和示例进行工作 https github com firebase Friendlycha
  • 确定合时坐标

    今天金星的下合 虽然由于太阳偏北而仍然可以观测到 激发了 pyEphem 的以下研究 确定金星与太阳下合的日期 pyEphem 中是否有金星和太阳之间 劣 合相的搜索功能 确定该日期金星的黄道纬度 那应该很容易 对过去 100 年和未来 1
  • 按自定义顺序对对象数组进行排序

    我有一个对象数组 其中有一个名为 CODE 的属性 ID 168 NAME First name CODE AD ID 167 NAME Second name CODE CC ID 169 NAME Third name CODE CCM
  • 如何更改Android弹出菜单的背景颜色

    我通过查询数据库生成菜单的每个选项 这是我的代码 final PopupMenu popupMenu new PopupMenu getBaseContext v SQLiteDatabase db AdapterDb getReadabl
  • 使用 Create-React-App 进行 VSCode 调试

    我想设置 VS Code 来调试使用 create react app 创建的 React app 我尝试过这个配置 version 0 1 0 configurations name Launch node type node reque
  • 用什么来做多重相关?

    我正在尝试使用 python 来计算响应数组和一组预测变量之间的多重线性回归和多重相关性 我看到了计算多元线性回归的非常简单的示例 这很容易 但是如何使用 statsmodels 计算多重相关性呢 或与其他任何东西一起作为替代 我想我可以使
  • 获取程序集的原始源代码位置

    有没有办法获取程序集的位置原始源代码通过反射定位 Warning 我不是在寻找程序集的当前位置 而是在编译源代码时所在的位置 e g Given myAssembly dll c program files myapp myAssembly
  • 我可以创建使用 WPF 显示的 Visual Studio 2010 外接程序吗?

    我们正在致力于为我们的企业应用程序创建专门的图形编辑器 我们研究并拒绝了 DSL 理想情况下 我希望编辑器的主界面像代码窗口一样停靠 并使用 WPF 进行绘图 谁能给我指出一些文档 让我走上正确的道路 Thanks Colin 更新 它开始