从WPF文本框中删除焦点会导致性能降低

从WPF文本框中删除焦点会导致性能降低,wpf,performance,textbox,Wpf,Performance,Textbox,画布内的文本框;画布位于滚动查看器中;用户可以像GoogleMap一样,用鼠标点击画布。问题是,通过Keyboard.ClearFocus()从代码隐藏中的文本框中(以编程方式)移除焦点后,突然一切都变慢了,平移或其他更改变得非常滞后。如果用户单击画布或其他文本框,性能将再次恢复正常。通过使用性能分析器,我找不到任何与我的代码相关的东西;只有16.79%的性能用于我的代码,其余的性能用于[外部代码]。 如何找出消耗如此多性能的外部代码,以及为什么以编程方式从文本框中删除焦点会导致性能下降 在点击

画布内的文本框;画布位于滚动查看器中;用户可以像GoogleMap一样,用鼠标点击画布。问题是,通过
Keyboard.ClearFocus()
从代码隐藏中的文本框中(以编程方式)移除焦点后,突然一切都变慢了,平移或其他更改变得非常滞后。如果用户单击画布或其他文本框,性能将再次恢复正常。通过使用性能分析器,我找不到任何与我的代码相关的东西;只有16.79%的性能用于我的代码,其余的性能用于[外部代码]。 如何找出消耗如此多性能的外部代码,以及为什么以编程方式从文本框中删除焦点会导致性能下降

在点击画布之前

点击画布后


应用程序时间线可能会显示更多可用数据。也可以转到:选项->调试器->输出窗口,将所有内容更改为全部。也许你会在那里发现一些惊喜。@MaciekŚwiszczowski谢谢。建议很有帮助,但无法提供有关外部代码部分的任何特定信息。在文本框被聚焦或焦点被编程移除的两种情况下,应用程序时间线显示布局和渲染的相同值。也许WPF团队应该把它看作是一个bug。它们不会,直到你提供一个可重复的例子。如果你有,请先把它贴在这里。两种都试过了,没有变化。在另一个文本框上设置焦点有效。谢谢你的建议。也许我会为他们提供一个可行的例子。