在WPF中,下面的代码返回给定位置的所有字体的列表:WPF Fonts.GetFontFamilies()缓存字体列表,如何清除缓存?
foreach (var fontFamily in Fonts.GetFontFamilies(@"C:\Dummy\Fonts\"))
{
System.Diagnostics.Debug.WriteLine(fontFamily.Source);
}
的问题是,如果你更改该文件夹(添加或删除字体)的内容和运行此代码再次,它返回相同的列表(因为它是缓存内部某处)。
这个缓存不会被清除,直到你的退出该应用程序!
有什么办法可以防止这种行为,并且总是让WPF在那个时候查看那个文件夹的字体吗?
注:结果是无论“的Windows Presentation Foundation字体缓存3.0.0.0”服务状态启动或停止的一样。显然,这种特定类型的缓存并未被服务处理。
当您在Debug和Release配置中运行应用程序时,会发生这种情况吗?我有一个类似的问题,只发生在调试模式下。 – 2011-03-30 15:09:43
是的,它是一样的,不管我在Release/Debug/VS/Standalone内运行应用程序。总是缓存在那里。 – 2011-03-30 15:14:33