问题标签 [hwndsource]
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.
c# - 使用 HwndSource 在 Win32 应用程序中托管 WPF UserControl
我需要通过 Handle 在其他窗口中托管我的 WPF UserControl。我尝试使用 HwndSource:
但在这种情况下,箭头和制表键不起作用。
如果我使用 ElementHost 一切正常:
如何使用 HwndSource 获得全部功能?
c# - PresentationSource.FromVisual(this) 在 WPF 中返回空值
我正在使用以下代码:
在某些系统中,“源”值是空的,我找不到原因......
c# - ElementHost 中托管的 WPF 元素未正确重绘
我正在编写一个程序来在 C# 中实现 COM 组件。该组件也提供了一个 UI 组件。为了便于实现组件的未来添加,我决定使用 WPF 在 Xaml 中编写 UI,并将其包装在 ElementHost 控件中,以便将句柄返回给 COM 使用者。
这就是有趣的地方。该元素托管在 win32 选项卡控件中。第一次选择选项卡时,它加载正常。切换到另一个选项卡并返回会导致它无法正确绘制组件。如果我在其中移动鼠标,它将绘制 TextBox 元素,但它永远不会重绘整个 UserComponent。
我已经尝试了我看到的所有可能的解决方案,从更改组件的高度/宽度值到将 HwndTarget 置于 SoftwareOnly 呈现模式。
我不确定此时要尝试什么,因此欢迎提出建议。我真的很想在不使用 Windows 窗体的情况下做到这一点,因为它的未来维护者不是最好的程序员,告诉他们编写一个带有数据绑定的 Xaml 文件比手动布局表单并设置要容易得多代码隐藏中的值。
c# - 如何“从”我直接创建的 HwndSource 获取 WPF 窗口?
如果我直接创建一个,那么我是否还创建了一个现在可以从代码访问HwndSource
的 WPF ?Window
如果是这样,我该如何访问它?
或者我现在需要以某种方式“添加”一个 WPFWindow
吗HwndSource
?如果是这样,我该怎么做?
我已经HwndSource
彻底研究了文档,这部分根本没有解释清楚。我知道我可以HwndSource
从现有的 WPF 窗口中获取,但这对我没有帮助。我需要拦截 的创建Window
,所以我可以强制它设置WS_CHILD
样式并直接设置它的父级;并且文档说如果要强制其父级,则必须直接创建 HwndSource 。
编辑:我一直在研究我能找到的每一个问题HwndSource
;看起来您通过将对象的属性设置为要显示的 WPF 对象,将WPF对象“添加”到对象;或者也许通过调用方法?接下来将检查那些。希望这对其他提问者有用。HwndSource
RootVisual
HwndSource
HwndSource
AddSource
c# - 从另一个 WPF 应用程序向 WPF 应用程序发送窗口消息
我在服务器端使用了这段代码
我像这样从客户端发送消息
问题是服务器端收不到这个消息,为什么?
c# - 如何更改 HwndSource 窗口大小 C#
我在 C# 中创建了一个窗口作为 C++ 窗口处理程序的子窗口,代码如下:
但是,创建此子窗口后,我无法通过使用更改其大小
创建后有什么方法可以改变它的大小吗?谢谢~!
c# - 在非托管 C++/CLI 应用程序中托管时如何在 WPF UI 线程上工作
我有一个 WPF 日志查看器用户控件,它通过命名管道接收日志消息。管道消息在线程池线程上接收和处理,然后我将其传递给 UI 以通过 Application.Current.Dispatcher.Invoke 调用显示。在 .Net 主机应用程序中运行时就像一个魅力。
当我使用 HwndSource 在非托管 C++/CLI 应用程序中托管控件时,Application.Current 为空。在这种情况下,如何在 UI 线程上执行代码?
c# - 直接创建 HwndSource
我正在尝试通过直接创建来创建一个窗口HwndSource
。目前我有一个替代解决方案 - 从Window
类继承,但我只是好奇我的HwndSource
实现有什么问题。由于在其核心中Window
使用HwndSource
,我觉得应该有一种方法。
这是我的代码的简化版本:
窗口按预期创建,但在我关闭它(Alt+F4 或关闭图标)并将鼠标悬停在我的主窗口上后,大量消息被吐到调试器中:
抛出异常:WindowsBase.dll 中的“System.ComponentModel.Win32Exception”
异常详情如下:
堆栈跟踪:
因此,错误发生在框架代码深处。
我尝试填充其他属性或向Disposed
处理程序添加清理,但这对结果没有影响。如果我不设置RootVisual
,则没有错误(但是,当然,这不是一个选项)。
有什么我想念的想法吗?
wpf - WPF,挂钩窗口,弹出窗口
在 App.xaml.cs 或另一个起始类实例中,您需要添加:
其中,是的RootSourceProperty
私有字段DependecyProperty
。PresentationSource
其属性在HwndSource
创建时使用并设置 RootVisual。所以你只需要使用属性更改回调RootSourceProperty
:
这很好,因为您可以在所有应用程序中使用它并为所有HwndSource
(或自定义控件,您正在使用的地方Popup
)使用它Window
HwndSource
c# - 如何更改 HwndSource RootVisual
我有一个 HwndSource 和两个 WPF 用户控件,我想将其中一个设置为此 HwndSource 的 RootVisual,有时在这两个 WPF 用户控件之间切换。
只是想知道我能做到吗?
我的两个 WPF 用户控件是m_media, m_stored
:
第一次我只是新建 HwndSource 对象并用于HwndSource.RootVisual = m_media
设置根视觉,然后我想将其根视觉更改为m_stored
,谁能告诉我该怎么做?
非常感谢大家。