C# WPF字形控制字体uri!(它的速度很慢,并保留在内存中)
我正在制作一个类似datagrid的控件,它有很多行和列。问题是加载时间,使用glyphs而不是textblock解决了这个问题 现在的问题是,当我从应用程序包中给它一种字体时,它会变慢并保留在内存中,每次控件重新加载时,它都会变慢并消耗更多内存:C# WPF字形控制字体uri!(它的速度很慢,并保留在内存中),c#,wpf,memory-leaks,fonts,uri,C#,Wpf,Memory Leaks,Fonts,Uri,我正在制作一个类似datagrid的控件,它有很多行和列。问题是加载时间,使用glyphs而不是textblock解决了这个问题 现在的问题是,当我从应用程序包中给它一种字体时,它会变慢并保留在内存中,每次控件重新加载时,它都会变慢并消耗更多内存: Glyphs glyph = new Glyphs() { FlowDirection = FlowDirection.LeftToRight, Unic
Glyphs glyph = new Glyphs()
{
FlowDirection = FlowDirection.LeftToRight,
UnicodeString = "text",
FontUri = fnt,
FontRenderingEmSize = 15,
Fill = Brushes.Black,
HorizontalAlignment = HorizontalAlignment.Center
};
现在问题的起因是:
Uri fnt = new Uri("pack://application:,,,/myapp;component/Fonts/times.ttf");
如果我这样做,一切都会好起来:
Uri fnt = new Uri(@"C:\Windows\Fonts\times.ttf");
但我将使用一种其他系统上不存在的字体,它需要与我的应用程序一起使用。这实际上与此处的问题相同,并且不会在任何时候修复: WPF团队最近已经审查了这个问题,并且将不会解决这个问题,因为此时团队正在关注影响最多WPF开发人员的bug。如果您认为这是错误解决的,请使用任何必要的支持详细信息重新激活此错误 我们感谢您的反馈。然而,这个问题将不会在WPF的下一个版本中解决。非常感谢。 –WPF团队 由于这两种情况都是由UnmanagedMemoryStreams造成的,所以现在您只能创建临时文件夹并将字体保存到其中。这并不漂亮,但这就是我们所拥有的一切