问题标签 [windowsformshost]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - WindowsFormsHost Winform pdfviewer控件问题
我有一个 wpf 用户控件,里面我使用 Winforms pdfviewer 来显示 pdf 文件。我也有几个文本框来输入文档详细信息。最后,显示此用户控件的弹出窗口。问题是,当我尝试在文本框中输入内容时,ntn 正在发生。当我右键单击文本框时,我可以看到带有剪切、复制和粘贴选项的上下文菜单。在谷歌搜索了一下之后,我发现了类似下面的东西Forms.Integration.WindowsFormsHost.EnableWindowsFormsInterop()
,我把这条线放在了加载的事件中,但这不起作用。任何人都可以面临类似的问题并有任何解决方案。谢谢。雷伊
wpf - 退出使用 System.AddIn 的 WPF 应用程序时出现“无效的窗口句柄”
我正在开发一个 WPF 应用程序,该应用程序使用 System.AddIn 来解决我们在使用包装在 WindowsFormsHost 控件中的基于 Windows 窗体的控件时遇到的内存泄漏问题。该加载项用于根据需要加载和卸载基于 Windows 窗体的控件,以避免 WindowsFormsHost 的开销,在当前版本的 WPF 和基于 Windows 窗体的控件中的内存泄漏之前,WindowsFormsHost 的开销将一直存在,因为糟糕的清理逻辑。
我们面临的问题是,在应用程序中加载和卸载外接程序后,WPF 应用程序将在应用程序退出时抛出“无效窗口句柄”的 Win32 异常。这通常不是一个可怕的问题,但是即使可以捕获异常,它也不会阻止 Windows 将应用程序视为崩溃并在 Windows 7 下显示崩溃对话框,这是不可接受的。
关于代码,相关事实是:
仅当 WPF 宿主应用程序加载和卸载加载项时才会发生异常。我们将在加载项中释放 WindowsFormsHost 控件和基于 Windows 窗体的控件,作为在卸载加载项之前调用的自定义 Dispose 方法的一部分。
加载项在卸载之前关闭其调度程序(作为上述处置过程的一部分),这已在 MSDN 文档和博客文章中指出是必需的,并且还解决了在这种情况下未发生的问题。
我们没有选择使用基于 Windows 窗体的控件,因为它是一些报告所必需的,并且有太多的报告文件需要转换,没有合适的 WPF 版本,也没有时间去改变它。
我无法提供代码示例,因此我正在寻求有关这种情况的任何想法或以前的经验,以防我遗漏了什么。
wpf - Application.Idle 事件未在 WPF 应用程序中触发
我正在使用第三方 Windows 窗体控件,该控件使用 Application.Idle 事件“延迟”执行一些操作。
现在我们将应用程序移至 WPF,这些操作停止工作。我发现 System.Windows.Forms.Application.Idle 事件未按预期引发。
如何在 WPF 应用程序中触发 Idle 事件,以便我可以继续使用该第三方控件(在 WindowsFormsHost 中)?无法修改 Windows 窗体控件。
wpf - 使用 WindowsFormsHost 时 WPF 并不总是重新绘制
我有一个简单的应用程序,它Control
使用WindowsFormsHost
. 我已经覆盖了中的绘画方法Control
以防止闪烁:
有一个计时器会定期使托管 DirectX 无效,Control
以便重新绘制它。
我的问题是,当我锁定计算机(WIN+L),然后再解锁时,WindowsFormsHost
偶尔出现的 WPF 内容无法完全绘制。在我将窗口完全拖出视图之前,不会绘制它的各个部分。关于为什么 WPF 没有完成重绘本身的任何想法?
抱歉,如果这太模糊而无法解决问题,我无法分享更多源代码。
wpf - WindowsFormsHost 和 DependencyProperty
我有一个 Windows 窗体控件,我正在尝试使用WindowsFormsHost类将其包装为 WPF 控件;我想将旧控件绑定到视图模型。具体来说,该控件公开了一个网格属性GridVisible,我想将视图模型绑定到该属性。我使用一个私有的、静态的支持字段和一个静态的、只读的属性来表示依赖属性(功能上与静态的公共字段相同,但不那么混乱)。当我尝试通过 XAML 设置控件的GridVisible属性时,它没有更新。想法?我做错了什么?
绘图主机类
XAML
wpf - 使用依赖属性包装
我有一个 Windows 窗体控件,我用WindowsFormsHost
- 派生类包装它以访问 WPF 的数据绑定功能。Forms 控件公开指示其状态的属性,以及标准的属性更改事件通知程序。
例如,Zoom
Forms 控件上的属性伴随着一个ZoomChanged
事件。在WindowsFormsHost
包装器中,我使用 aDependencyProperty
来表示底层的 Windows 窗体控件属性。绑定使用PropertyMetaData
分配回调按预期工作;但是,我不确定如何正确地将属性更改从包装控件传播回绑定订阅者(即,Windows 窗体控件更改其Zoom
属性并引发ZoomChanged
事件)。关于如何做到这一点的任何想法?我应该使用不同的方法吗?
wpf - WPF 中托管的 Windows 窗体用户控件 - 如何捕获请假事件?
在我的 WPF 应用程序中,我将自定义 Windows 窗体用户控件与其他 wpf 控件一起托管。我的自定义用户控件使用 WindowsFormsHost 控件托管在 wpf 中。此自定义用户控件包含(可以说是父级)其他自定义 win 表单控件(子控件)。子控件可以是单个控件或复合控件。
当用户从父自定义用户控件中的最后一个子用户控件导航到 wpf 用户控件时,如何捕获子控件上的离开事件?
根据 MSDN ( http://msdn.microsoft.com/en-us/library/ms751797.aspx ),在以下情况下不支持 leave 事件:
当发生以下焦点更改时,不会引发 Enter 和 Leave 事件:
场景 1 和 2 正是我所苦苦挣扎的。你有解决这个问题的办法吗?一些解决方法或任何东西都值得赞赏:)
此致,
OKB
wpf - 在 WPF 中的 WindowsFormsHost 控件中捕获键盘输入
我在 WinForms 用户控件中有一个 ActiveX 控件。我的 WinForms 应用程序很喜欢它!
现在,转到 WPF,我在 WindowsFormsHost 控件中使用用户控件。效果很好...,但我想将此控件视为单个元素,以便用户可以巧妙地在现有 WPF 控件上点击 TAB,并且此用户控件不要“进入”它。即像所有其他控件一样将其视为单个控件。
我认为我需要的是捕获键的能力,并且在事件处理程序中只需将焦点移动到序列中的下一个控件,但我似乎无法捕获任何键盘输入。我已经尝试过 WPF PreviewKey.. 事件等,但是一旦选项卡进入控件,它似乎会留在其中并且 WPF 事件被忽略。
我在许多 WPF 书籍和网络中都找不到关于此的任何内容。任何人都可以提出一种方法吗?
谢谢,杰克。
wpf - 带有 WindowsFormsHost 未知边框问题的 WPF TabControl
我正在 WPF 中编写一个文本编辑器,我似乎有一个无法删除的奇怪边框。
我有一个带有 tabcontrol 的网格,当用户选择“File -> New”时,我以编程方式将一个新的 tabitem 添加到 tabcontrol。我将 tabitem 内容设置为 WindowsFormsHost 的一个实例,以便托管 ScintillaNet WinForms 控件。
这是问题所在:http: //i.stack.imgur.com/kotSb.png
我很确定边框不是来自 WinForms 控件本身,因为我在同一配置中的其他地方使用过它并且它没有边框。
您看到的红色边框是我添加的以突出显示问题(在响应 File -> New 的方法中),代码如下:
这个内部灰色边框来自哪里的任何想法?
wpf - WPF TabControl/文件打开需要定位子WindowsFormsHost
我正在尝试在 WPF 中编写一个文本编辑器,但在尝试在 a 中找到正确的编辑器实例TabControl
以响应 File -> Open 操作时遇到问题。
选项卡项以编程方式添加并包含一个WindowsFormsHost
实例,该实例反过来允许每个选项卡显示由 ScintillaNet WinForms 组件提供的编辑器。
当一个选项卡被选中并且用户选择 File -> Open 时,我需要根据选项卡选择找到正确的 WindowsFormsHost 实例,以便我可以将文件加载到正确的 Scintilla 实例中。
以前,我只是通过以下方式在 WinForms 中完成此操作:
这在 WPF 中是如何工作的?