问题标签 [elementhost]

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.

0 投票
2 回答
5605 浏览

wpf - 根据其内容自动调整 ElementHost

我有一个小的 WPF 控件,它有一个 TextBlock,TextWrapping 设置为 Wrap。我试图在现有的 WinForms 应用程序中托管它。我将 ElementHost 停靠在表单的顶部,我想根据 TextBlock 所需的高度来调整 ElementHost 的高度。有没有办法做到这一点?

0 投票
1 回答
1737 浏览

.net - .Net 4 在 ElementHost (MVVM) 中绑定到 WPF Cotrol

ElementHost在 Winforms 应用程序中有一个 WPF。用户控件有一些文本和一个TreeView应该显示应用程序提供的可用命令的树。

我是 WPF 新手(这是一个学习练习),所以在绑定数据时遇到了一些问题。

我创建了一个CommandTreeViewModel类来充当我的视图模型。它有一个FirstGeneration属性是IEnumerable(of CommandViewModel). 该类CommandViewModel又具有一些简单的属性来描述Command包括Children属性(同样是IEnumerable(of CommandViewModel))。

我已经Public Property ViewModel As CommandTreeViewModel向我的 WPF 用户控件添加了一个,该控件现在由我的 winforms 应用程序设置。

我不知道该怎么做是将我在 ViewModel 属性中提交的数据绑定到 TreeView。(有什么方法可以强输入我的 XAML 绑定的 ViewModel 类 a-la MVC?)

我已经包含了我认为下面的相关代码,以备不时之需。

用户控制

XAML

查看模型

如您所见,我并不清楚我需要做什么,并且一直在尝试从各种教程中破解一些代码。大多数只是 WPF。

运行上面的代码正确加载了控制(我可以在我的表单上看到“测试”文本),但TreeView仍然是空白的。没有错误被抛出。我假设这是因为我没有正确绑定数据。

最后,我还不清楚我的哪些房产需要成为 DP?用户控件、视图模型、模型子项?我只是不清楚绑定是如何工作的。

0 投票
1 回答
487 浏览

wpf - 向 WinForms 宿主公开 WPF 控件的属性

我看过几篇类似的帖子(如果有,请指导我),但我没有找到任何明确的答案。

我有一个 WPF 控件,通过ElementHost. 我的 WPF 控件(我们只是为了一个例子而称之为WpfControl)包含一个我想向我的表单公开的变量。这样做的一般标准做法是什么?

0 投票
1 回答
724 浏览

wpf - WinForms ElementHost 因重复使用而变慢

我有一个场景,其中使用 WPF 作为无模式对话框的一部分大大优于替代方案。但是,我看到的是,每次我调出对话框时,它都会变慢一点,直到最终需要 20 秒才能调出对话框。

我用 ANTS 对其进行了分析,它在我的表单的 InitializeComponent 部分基本上指向三个不同位置的 ElementHost:创建主机,设置背景颜色(我可以消除),以及分配孩子。

虽然这发生在与主 UI 线程不同的 UI 线程上(通过创建一个线程,将它的单元设置为 STA,然后在其中执行另一个 Application.Run(myform))它仍然锁定主 GUI,因为它非常忙碌的。

如果您杀死该应用程序并重新开始,问题就会消失,并且它会在一段时间内再次运行良好。代码的其他部分似乎没有变慢。

在 ElementHost 之后我可以做些什么来清理吗?

0 投票
1 回答
517 浏览

wpf - ElementHost 外的焦点边框未显示

我正在使用 ElementHost 在 WinForms 应用程序中托管 WPF 自定义控件。控件有一个粗边框,当控件具有焦点时应该可见。边框在控件“外部”,即具有负边距。

问题是焦点边框永远不会出现。如果我将包含我的控件的填充边框添加到 ElementHost,它就会变得可见。但是,我希望将控件保留在 ElementHost 中,因此它不会破坏在使用存根之前制作的布局。任何的想法?

谢谢。

0 投票
1 回答
298 浏览

shadow - ElementHost DropShadowEffect

我正在使用 ElementHost 在 WinForms 控件中托管 WPF 用户控件。我的 WPF 控件具有 DropShadowEffect 但它未显示在屏幕上。WPF 控件是扁平的。我需要做什么?这是我的代码:

MyWPFUserControl xaml:

0 投票
2 回答
5017 浏览

wpf - 带有 WindowsFormsHost 托管控件的 ElementHost 托管 WPF 视图的键盘焦点导航问题

我在托管 WPF 用户控件的 Windows 窗体应用程序中遇到键盘焦点问题。当我按 Tab 时,如果 UserControl 中只有 WPF 控件,则导航效果很好。如果我将 WindowsFormsHost 托管控件添加到此 WPF UserControl,则焦点不会从 WPF UserControl 中的 WindowsFormsHosted 控件移开。

当应用程序是 WPF 应用程序时,焦点导航工作正常,但是当我将此 WPF UserControl 添加到 Windows 窗体应用程序时,按 TAB 不再起作用。

在这方面获得一些帮助会很棒。

这是我的代码:

0 投票
1 回答
573 浏览

wpf - 我无法在 Windows 窗体设计器中移动包含全尺寸 ElementHost 的 UserControl?

我在 Windows 窗体 UserControl 中有一个 ElementHost,它的大小与 Windows 窗体 UserControl 的全宽/高度一致。UserControl 在窗体上...但我无法移动 UserControl 或在设计器中选择它,因为每当我将鼠标悬停在/单击设计器中的 UserControl 时,ElementHost 的子级都会窃取焦点。

如何在设计时防止这种情况发生?

0 投票
1 回答
2180 浏览

wpf - 从 WPF 到 WinForms 的气泡鼠标事件

我使用 ElementHost 在 WinForms 控件中托管 WPF 控件。WinForms 控件有一个上下文菜单。当用户右键单击 WPF 控件时,我想显示上下文菜单。如何才能做到这一点?似乎鼠标事件没有从 WPF 冒泡到 WinForms。

0 投票
2 回答
4176 浏览

.net - ElementHost 布局问题

我有一堆要加载到表单中的 ElementHost。发生这种情况时,元素主机都显示为黑色背景。如果我将另一个控件放在前面,然后关闭另一个控件,则 ElementHosts 将正常重新绘制。经过一番谷歌搜索,我发现如果我将 ElementHost 子类化并在构造函数中执行此操作

ElementHosts 都是用良好的背景绘制的……但是,每个元素主机大约需要 300 毫秒才能出现在表单上……而且它们是按顺序出现的……所以就像看着表单布局一样……我有,当然手动调用了 SuspendLayout 和 ResumeLayout,但这不会改变结果。

这只是 Windows 窗体集成错误吗?或者我可以做些什么来使控件以合理的速度正确显示?

谢谢。

更新:我可以用非常简单的代码重现问题: