好奇使用ElementHost在 Winform 应用程序中托管 WPF UserControl是否有任何缺点?
我问是因为总的来说,我觉得创建一个新的 WPF 应用程序需要很长时间,它的基本界面看起来不错。从某种意义上说,如果我创建一个新的 Winforms 应用程序并在其上添加一些控件,我最终会得到一个基本界面,该界面的外观和行为类似于许多其他应用程序,但看起来并不简单。如果我对 WPF 应用程序做同样的事情,我觉得我不会获得相同的结果,我最终会得到一个带有白色背景的“普通”应用程序,除非我将角色更改为设计师并花费额外的时间让它看起来很确定方法。
然而,在某些情况下,WPF 对我来说是可取的,因为它相对容易创建一个风格化的界面。考虑一个视频播放器控件;在 WPF 中,我可以创建一些看起来非常漂亮和自定义的东西,但比 Winforms 控件花费的时间和精力要少得多。在这些情况下,使用 WPF 对我来说是有意义的,因为我最终花费的时间比我覆盖 OnPaint 的时间要少:-)。
我意识到我使用了很多主观术语,但这是我对原始问题的推理。
更新:
只是为了澄清我的“视频播放器控制”示例。WPF 不仅让我MediaElement
可以玩,而且如果我想说,在视频暂停时覆盖一个播放按钮,或者如果我想要一个半透明的“播放/暂停/停止/音量”栏显示什么时候将鼠标放在某个位置,WPF 比任何 Winforms 替代方案都简单得多。
编辑:
也许我的配置选项错误或其他什么,但当我查看 WPF 与 Winforms 控件时,“描述”部分消失也令人沮丧。更令人沮丧的是,在 WPF 属性表单中按 F1 不会将您带到您所在的特定属性/事件。
更新:
还有谁?我更关心在ElementHost中托管 WPF UserControl 会带来的性能影响和/或功能限制。到目前为止,这听起来像是运行时的一次性开销,但仅此而已吗?