在 .net 2.0 应用程序中加载 .net 3.5 wpf-forms

2023-12-20

我正在尝试在 .net 2.0 Windows 窗体应用程序中加载和托管 WPF 控件。仅当安装了 .net 3.5 时才应加载 WPF 控件。

我找到了一个链接在 MFC 应用程序中托管 WPF 内容 http://www.codeguru.com/cpp/cpp/cpp_managed/interop/article.php/c14589__2/这就是我正在尝试做的事情,但我的 C++ 知识不足以将其“翻译”到 .net。

无论如何,这是另一个链接:在 Java 应用程序中托管 WPF 内容 http://www.codeproject.com/KB/java/JavaHostWPF.aspx这又不一样了,但我不知道从哪里开始在 .net 中编写该代码。


关于此类主题的第一站应该是 WPF迁移和互操作性 http://msdn.microsoft.com/en-us/library/ms753178.aspx。特别是你会发现有一个演练:在 Windows 窗体中托管 Windows Presentation Foundation 控件 http://msdn.microsoft.com/en-us/library/ms742215.aspx让您开始。

请注意,本演练中构建的 Windows 窗体宿主应用程序确实如您所愿以 .NET Framework 2.0 为目标,尽管事实上ElementHost http://msdn.microsoft.com/en-us/library/system.windows.forms.integration.elementhost%28VS.85%29.aspx已在 .NET Framework 3.0 中引入。

如果您需要保护您的应用程序免受缺少这些程序集的影响,您将不得不引入一个间接层并且仅加载ElementHost在成功检测到 .NET Framework 3.5 后的运行时,请参阅下面有关后者的提示。


.NET Framework 版本和服务包检测:

  • 堆栈溢出:如何检测.NET Framework 版本和服务包是 已安装 https://stackoverflow.com/questions/199080/how-to-detect-what-net-framework-versions-and-service-packs-are-installed
  • MSDN: 如何确定是哪一个 .NET Framework 的版本是 已安装以及是否有服务包 已应用 http://msdn.microsoft.com/en-us/kb/kb00318785.aspx
  • 代码项目(带源代码): 使用托管 检测什么 .NET Framework 的代码 版本和服务包是 已安装 http://www.codeproject.com/KB/dotnet/frameworkversiondetection.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 .net 2.0 应用程序中加载 .net 3.5 wpf-forms 的相关文章

随机推荐

  • 从 HttpInterceptor 中的 catchError 返回可观察到的捕获错误会导致错误循环

    我有一个简单的拦截器 可以处理请求并使用 RXJS catchError 捕获任何 http 错误 catchError 中收到的第二个参数是捕获的可观察值 在某些情况下 我想返回此错误并让它传播到订阅函数中的错误处理程序 问题是返回捕获的
  • mingw ld 找不到搜索路径中存在的某些库

    我用的是vim mingw 不知何故 终端还是window命令 所以我用谷歌搜索 并使用mintty 但是当运行 vim 时 它会永远挂起 直到我输入 C c i find 这一页 https code google com p mintt
  • 在 GCC 4.8 上构建 Python (2.7) 模块失败

    我正在尝试使用 C API 构建 Python 模块 扩展写入 但失败了 python2 cmath py build running build running build ext building c math extension cr
  • DataGridView 未在 C# 中更新[重复]

    这个问题在这里已经有答案了 有人能解释一下发生了什么吗 将代码 1 更改为代码 2 可以解决问题 尽管理论上应该没有区别 理论撞击实践就像南瓜撞击砖墙 Code 1 OutputDataGridView DataSource myList
  • 不等待 AJAX 请求的响应

    假设我从 jQuery 向后端 PHP 脚本发出 AJAX HTTP 请求 发出请求后 PHP 脚本开始运行并发挥其魔力 假设我随后更改为另一个网站 远离发出原始 AJAX 请求的网站 同样 我在 PHP 脚本完成之前执行此操作 并且有时间
  • 查找两个已排序数组的前 k 个和

    给定两个已排序的数组 大小分别为 n 和 m 你的任务 如果你选择接受它 是输出以下形式的最大 k 和a i b j O k log k 解决方案可以在这里找到 http www ocf berkeley edu wwu cgi bin y
  • 获取附件的 url

    我正在使用 CouchApp 构建一个简单的 Web 应用程序 允许上传和管理图片 实际的图像文件作为文档的附件存储 如下所示 id 09fe82d75a26f9aa5e722d6b220180d2 rev 2 5797b822c83b9d
  • 如何在 sed 的命令中使用变量?

    I have abc sh exec ROOT Subsystem xyz sh 在 Unix 机器上 如果我打印echo HOME然后我得到 HOME COM FILE 我想更换 ROOT with HOME使用 sed 预期输出 exe
  • iPhone:禁用“双击空格键。”捷径?

    默认情况下 如果您在 iPhone 或 iPad 上点击空格键两次 则不会得到 两个空格 而是得到 句点后跟一个空格 有什么方法可以在代码中禁用此快捷方式吗 更新 通过 UITextInputTraits 禁用自动更正不起作用 更新2 明白
  • Scala中涉及抽象类型时没有动态绑定?

    当我在 Martin Odersky 的抽象类型中尝试动物 食品示例时Scala 编程 class Food abstract class Animal type SuitableFood lt Food def eat food Suit
  • 将 vue-router 组件解释为一个函数

    我在几个不同的地方看到了以下类型的路由定义 path dashboard component render c return c router view children path component Dashboard 我试图理解这有什么
  • Linux 中的 SDL 桌面分辨率检测[重复]

    这个问题在这里已经有答案了 我收到一些报告称 对于某些 Linux 用户 尤其是使用 SteamOS 的用户 我的游戏以错误的分辨率打开 游戏尝试检测当前桌面分辨率并使用该分辨率创建无边框全屏窗口 例如 SteamOS 的分辨率通常为 19
  • java.lang.StackOverflowError:在 ListView 适配器中启用/禁用 TextView#setTextIsSelectable 时堆栈大小为 8MB

    我有一个活动ListView 显示TextView在每个列表项中 使用这些方法切换选定位置的属性EditText setTextIsSelectable EditText setEllipsize EditText setSingleLin
  • XCTest相对于SenTestingKit有哪些优势?

    我想在 iOS 中进行单元测试 默认情况下 测试类是使用 Xcode 5 中的 XCTest 框架类创建的 我在早期版本的 iOS 中使用了 SenTestingKit 这两个框架有什么区别 XCTest框架有哪些优势 我用谷歌搜索了相关文
  • 材料表使行在单击时可编辑

    使用材料表 https material table com 库中 我试图使表行可以通过双击进行编辑 单击该行应该与单击操作列最左侧的编辑按钮具有相同的效果 我已成功链接到正确的事件处理程序 现在双击一行时由警报框表示 https code
  • kohana3.0如何彻底删除镜像文件?

    我有一个 kohana3 0 内容和文件管理系统 当用户删除图像时 我希望能够从数据库以及我上传图像的文件夹中完全删除图像 现在我用于图像删除 public function delete id NULL parent delete id
  • gdb - 执行命令n次

    我正在使用 gdb 调试器来运行一个包含循环的程序 让我们坐在 10 中 当我进入循环时 我不想进入它 我知道我可以在循环之后设置第二个断点 而不是 c 继续 但我也记得有可能做类似 n 10 接下来的 10 次 的事情 n 10 不起作用
  • 如何使用 Ansible 创建新分区

    当我在命令行上运行它时 它工作正常 echo e n np n1 n n nw sudo fdisk dev sdb 但在 Ansible 中它不想在 shell 中运行 name partition new disk shell echo
  • 如何在运行时填充 boost::fusion::vector ?

    首先 为与我之前的问题相似而道歉here https stackoverflow com questions 13094535 iterating over boost fusionvector 但我认为我问得不对 我有一个方法 templ
  • 在 .net 2.0 应用程序中加载 .net 3.5 wpf-forms

    我正在尝试在 net 2 0 Windows 窗体应用程序中加载和托管 WPF 控件 仅当安装了 net 3 5 时才应加载 WPF 控件 我找到了一个链接在 MFC 应用程序中托管 WPF 内容 http www codeguru com