C# WPF工具提示内存泄漏
使用JetBrains dotMemory,我在WPF的ToolTipService中找到了一个内存泄漏。此语法没有内存泄漏:C# WPF工具提示内存泄漏,c#,wpf,memory,memory-leaks,tooltip,C#,Wpf,Memory,Memory Leaks,Tooltip,使用JetBrains dotMemory,我在WPF的ToolTipService中找到了一个内存泄漏。此语法没有内存泄漏: <Button ToolTipService.ToolTip="Hello World" /> <Button> <ToolTipService.ToolTip> <ToolTip Content="Hello World" /> </ToolTipService.ToolTip&g
<Button ToolTipService.ToolTip="Hello World" />
<Button>
<ToolTipService.ToolTip>
<ToolTip Content="Hello World" />
</ToolTipService.ToolTip>
</Button>
另一方面,此语法确实会导致内存泄漏:
<Button ToolTipService.ToolTip="Hello World" />
<Button>
<ToolTipService.ToolTip>
<ToolTip Content="Hello World" />
</ToolTipService.ToolTip>
</Button>
对于那些熟悉dotMemory的人来说,下面的保留图显示了工具提示是唯一将视图模型保留在内存中的东西
之所以使用这种奇怪的语法,是因为我使用的是从ToolTip继承的HeaderedToolTip类。除了工具提示的内容外,它还有一个标题属性,并以粗体显示标题。内存泄漏与该控件无关,但正如您所看到的,这种情况也只发生在工具提示上
我还尝试将工具提示定义为静态资源,因此可以执行以下操作:
<Button ToolTipService.ToolTip="{StaticResource HelloWorldToolTip}" />
但这也让它留在了记忆中
以前有没有人见过这种情况,或者有没有人对如何使用自定义模板显示工具提示有什么想法,这样就不会导致内存泄漏?能否:
<Button ToolTipService.ToolTip="Hello World" />
是否真的是WPF中使用工具提示而不导致潜在内存泄漏的唯一方法?您应该与Microsoft WPF部门联系,提供详细信息。我以前曾以不同的方式遇到过这种情况,请检查