wpf - VSTO WPF Outlook 插件 - 调整大小后刷新包含 WPF 内容的 ElementHost 时出现问题

标签 wpf vsto add-in

我有一个 Outlook 插件,它在 Outlook 资源管理器的右侧添加了一个自定义任务 Pane 。在任务 Pane 中,我添加了一个包含 ElementHost 的 UserControl。 ElementHost 将 WPF UserControl 作为子级,其中包含许多 WPF 元素。

插件工作得很好,除了当我调整自定义任务 Pane 的大小以减小其大小时,控件的内容通常不会正确重绘。相反,我在自定义任务 Pane 中得到了白色矩形。可以在所附图像中看到这样的一个例子。真正让我感到奇怪的是,矩形的位置不仅限于 ElementHost 的内容,还包括任务 Pane 的整个内容——您可以看到顶部矩形覆盖了任务 Pane 标题栏的下部。

有什么建议可能导致问题以及如何解决?

谢谢,

格雷戈尔

enter image description here

最佳答案

似乎对此的正确解决方案是禁用 WPF 控件的硬件加速。

private void UserControl_Loaded(object sender, RoutedEventArgs e) 
{ 
    HwndSource hwndSource = PresentationSource.FromVisual(this) as HwndSource; 
    HwndTarget hwndTarget = hwndSource.CompositionTarget; 
    hwndTarget.RenderMode = RenderMode.SoftwareOnly; 
} 

取自此处:https://www.add-in-express.com/forum/read.php?FID=5&TID=8618

关于wpf - VSTO WPF Outlook 插件 - 调整大小后刷新包含 WPF 内容的 ElementHost 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8307657/

相关文章:

wpf - 将 itemsource 设置为 ListView 后如何添加项目

c# - 将焦点设置回其父级?

c# - 如何将 lambda 表达式事件分配给另一个事件

c# - Outlook 加载项无法读取附件路径

.net - 以编程方式从 VSTO Excel 工作簿中读取 _AssemblyLocation

c# - 在 WPF 中为组合框设置默认名称

c# - Visual Studio Tools for Office (VSTO) 版本混淆

c# - Office 2010 加载项部署

com - 在 MS Office 64 位下使用 32 位 COM 插件

c# - 如何只读取 VSTO Outlook MailItem 正文中的新内​​容?