我有一个 WinForms 控件,里面有一个 TableLayoutPanel
,它包含多个 ElementHosts
,每个 ElementHost
都包含一个 WPF 控件。
一切正常,除非控件的大小大于窗口并且 ScrollBar
在那里;当我向下滚动时,控件会变得扭曲,就像这样 -
最大化窗口或调整窗口大小时,控件会正确呈现 (减小尺寸使控件超出可见区域,然后再次增大尺寸使它们回到可见区域)
这不会发生在同一个窗口中的 WinForms 控件中,只有 WPF 控件;知道为什么会这样吗?有什么解决方案吗?
最佳答案
this.Loaded += delegate
{
var source = PresentationSource.FromVisual(this);
var hwndTarget = source.CompositionTarget as HwndTarget;
if (hwndTarget != null)
{
hwndTarget.RenderMode = RenderMode.SoftwareOnly;
}
};
尝试在您托管的 wpf 控件中使用它。这是在 win 窗体中托管的 wpf 控件的一个已知呈现问题。将渲染模式更改为仅软件将解决问题。
关于c# - ElementHost 内的 WPF 控件呈现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11859821/